Como posso alterar o Arquivo de Informações no Ajax Upload do Arquivo de Controle ,Asp.net(VB)?

0

Pergunta

Estou criando uma arraste upload de arquivos usando Ajax Upload de Arquivo de Controle em Asp.net(VB). Eu quero mostrar o nome do arquivo, carregados data e hora, tamanho do arquivo, quando eu o arrastei para o painel. Como posso fazer para que essa configuração? Eu poderia alterar o texto para droparea como

$(document).ready(function () {

            
            Sys.Extended.UI.Resources.AjaxFileUpload_Pending = "保留中";
            Sys.Extended.UI.Resources.AjaxFileUpload_Remove = "削除";
            Sys.Extended.UI.Resources.AjaxFileUpload_Uploaded = "アップロード済";
            Sys.Extended.UI.Resources.AjaxFileUpload_Uploading = "アップロード中";
            Sys.Extended.UI.Resources.AjaxFileUpload_UploadedPercentage = "アップロード中 {0} %";
            Sys.Extended.UI.Resources.AjaxFileUpload_Upload = "アップロード";

            document.getElementsByClassName
            $(".ajax__fileupload_dropzone").text("ここにファイルをドロップ");

            document.getElementsByClassName
            $(".ajax__fileupload_uploadbutton").text("アップロード");
            
        });

Mas eu não sei como alterar o ficheiro de informações de exibição.

Este é o meu arraste forma e eu quero mudar de application/pdf para uploaded datetime

enter image description here

ajax asp.net vb.net webforms
2021-11-24 05:46:37
1

Melhor resposta

0

Você não pode realmente mostrar o "tempo" de carga até que o usuário inicia.

Você JÁ pode ver o tamanho do arquivo em seu tampa da tela, então por que a necessidade de que?

você tem:

enter image description here

assim, em cima, você verá o nome do arquivo, você verá o tamanho do arquivo.

No entanto, até o momento em que você bater-se-carga e start up de carregamento de arquivos, você não sabe o up-load tempo ainda, não é?

Assim, quando você bater-se-carregar arquivos, cada arquivo selecionado será carregado, e no lado do servidor (code-behind), você tem isso:

Protected Sub AjaxFileUpload1_UploadComplete(sender As Object, e As AjaxControlToolkit.AjaxFileUploadEventArgs) Handles AjaxFileUpload1.UploadComplete

    Dim strFileSave As String
    strFileSave = Server.MapPath("~/Content/" & e.FileName)
    AjaxFileUpload1.SaveAs(strFileSave)

    ' now code to add say to a database table of files up-loaded.

    Using conn As New SqlConnection(My.Settings.TEST4)
        Dim strSQL = "INSERT IGNORE INTO MyUpoadFiles (FileName, UpLoadTime, Size, User_id) " &
                     "VALUES (@File, @Time,@Size, @User)"

        Using cmdSQL As New SqlCommand(strSQL, conn)
            conn.Open()
            With cmdSQL.Parameters
                .Add("@File", SqlDbType.NVarChar).Value = e.FileName
                .Add("@Time", SqlDbType.DateTime).Value = Date.Now
                .Add("@Size", SqlDbType.Int).Value = e.FileSize
                .Add("@User", SqlDbType.Int).Value = Membership.GetUser.ProviderUserKey
            End With
            cmdSQL.ExecuteNonQuery()
        End Using
    End Using


End Sub

Agora, quando TODOS os arquivos são carregados, então o lado do servidor, mesmo UpLoadComplete todas fogo e, em SEGUIDA, você pode pegar a lista acima/tabela e exibir os arquivos de backup-carregado junto com o nome do arquivo, o tamanho e o tempo.

Mas, você realmente não tem a capacidade para exibir as informações do arquivo, tais como o tempo até a hora em que você enviou o arquivo e, em seguida, ter o tempo, certo?

Editar:

Talvez a idéia acima de tudo o que não foi clara. O que estou sugerindo é que você tem o carregador na página.

Assim, dizer que cair nessa marcação:

        <div style="width:40%;padding:25px">
        <ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload1" runat="server" 
            OnClientUploadCompleteAll="MyCompleteAll"  ChunkSize="16384" />

            <asp:Button ID="cmdDone" runat="server" Text="Done" CssClass="btn" ClientIDMode="Static"/>
            <script>
                function MyCompleteAll() {
                    $('#cmdDone').click()
                  }
            </script>
            <asp:GridView ID="Gfiles" runat="server" CssClass="table"></asp:GridView>
        </div>

E observe como usamos o lado do cliente de tudo feito, clique em.

Então, agora nós temos isso:

enter image description here

Podemos carregar, e agora vemos essa:

enter image description here

Agora devemos precisa ocultar o botão Done - temos o upload clicando no botão concluído para nós.

Assim que o botão, em teoria, deve ser esta para escondê-lo:

 <asp:Button ID="cmdDone" runat="server" Text="Done"
   style="display:none" ClientIDMode="Static"/>

E o código para que botão é esse:

Protected Sub cmdDone_Click(sender As Object, e As EventArgs) Handles cmdDone.Click

    Dim rstFiles As New DataTable
    Using conn As New SqlConnection(My.Settings.TEST4)
        Dim strSQL As String = "select FileName, UpLoadTime, Size, User_id from MyUpLoadFiles"
        Using cmdSQL As New SqlCommand(strSQL, conn)
            conn.Open()
            rstFiles.Load(cmdSQL.ExecuteReader)
        End Using
    End Using

    Gfiles.DataSource = rstFiles
    Gfiles.DataBind()

    ' hide up-loader
    AjaxFileUpload1.Visible = False
End Sub
2021-11-26 04:01:16

Alberto, Obrigado por sua resposta. Eu ainda não pode trabalhar essa parte pq eu preciso fazer outro projeto, mas vou tentar a sua resposta o mais breve possível. Sua resposta realmente apontou para o meu projeto. Thx tanto. Você me salvar de um monte.
Chang

Olá, eu tentei com o código e, quando eu bato o botão enviar , os dados podem inserir na tabela . Então eu fiz um comando select e definido no datatable, mas o meu gridview não pode mostrar-se totalmente e não esconde ajaxfileupload campo. Eu fiz de depuração e meu gridview tinha os dados da minha tabela db.
Chang

Bem, como estamos em cima de carga de arquivos, eles são adicionados à tabela. mas quando TODOS os arquivos (ou talvez você só selecionou um arquivo) são carregados, em seguida, temos o botão "concluído". Eu, naturalmente, não deseja que os usuários têm de clicar nesse botão, então observe como nós conectados a compilação "todos os eventos" do LADO do CLIENTE com um pouco de JavaScript clique nesse botão para nós. Quero dizer, para testar, basta deixar o arquivo (ou arquivos), up-load. E, em seguida, clique em um botão que executa o código para tomar os valores da base de dados de tabela e exibir na grade. Como observado, vamos precisar adicionar o user_id para a tabela.
Albert D. Kallal

Então eu não quiser que os usuários tenham clique nesse botão quando feito - que é o que a pequena quantidade de JavaScript não - eu fiz suponha que você tenha jQuery disponível na página (não precisamos todos????). E, uma vez verificado que isso funciona, então vamos esconder o botão "concluído". Mas, se você não o fio até que o código js do clique nesse botão (já que temos que TER um post completo-de volta a ocorrer!!! - você PRECISA que o post de volta. Você não pode colocar a grade de exibição de um código em ajax arquivo-evento load - você DEVE clicar em um botão para o post-back. Então, siga os acima de marcação com o código js clique no botão.
Albert D. Kallal

Observação acima, como o código para dispay a grade está no commadn feito de clique de botão. Para ser claro, não podemos colocar a grade de exibição de código em qualquer um dos ajax arquivo de controle de carga eventos. Temos que separar o botão. Para o teste, apenas a queda de um avião jane botão na página da web. Após o seu carregamento é feito, em seguida, clique no botão para executar a exibição de grade código. Uma vez que você começa a trabalhar e, em seguida, adicione o acima código js para automático clique nesse botão. E, em seguida, adicionar um estilo "display:none" para ocultar o botão do usuário.
Albert D. Kallal

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................