¿Cómo puedo cambiar la Información de Archivo en el Ajax Cargar el Archivo de Control ,Asp.net(VB)?

0

Pregunta

Estoy creando un arrastre de carga de archivos mediante el uso de Ajax Upload de Archivos de Control en Asp.net(VB). Quiero mostrar nombre de archivo, cargado datetime, tamaño de archivo cuando me arrastró al panel. ¿Cómo puedo hacer para que la configuración? Yo podría cambiar el 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("アップロード");
            
        });

Pero no sé cómo cambiar la información de archivo de la pantalla.

Este es mi arrastrar formulario y quiero cambiar de application/pdf a uploaded datetime

enter image description here

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

Mejor respuesta

0

Realmente no se puede mostrar el "tiempo" de la carga hasta que el usuario inicia.

YA se puede ver el tamaño del archivo en la pantalla de la tapa, así que ¿por qué la necesidad de que?

usted tiene:

enter image description here

así que en el anterior, verá el nombre de archivo, puede ver el tamaño del archivo.

Sin embargo, hasta el momento en que golpeó de carga y arranque-carga de archivos, usted no sabe todavía el tiempo de carga como de sin embargo, no?

Así que, cuando usted golpea cargar archivos, cada archivo seleccionado será cargado, y en el lado del servidor (código), tienes esto:

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

Ahora, cuando TODOS los archivos se cargan, entonces el lado del servidor, incluso UpLoadComplete todo se incendio, y ENTONCES usted puede tomar la lista de arriba/tabla y mostrar los archivos de carga junto con el nombre de archivo, el tamaño y el tiempo.

Pero, usted realmente no tiene la capacidad para mostrar la información del archivo, tales como qué tiempo hasta el momento en que hayas subido el archivo y, a continuación, tienen el tiempo, ¿verdad?

Editar:

Tal vez la idea anterior no fue del todo claro. Lo que estoy sugiriendo es que tienes el loader en la página.

Así, nos dicen que caer en este formato:

        <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>

Y nota cómo usamos el lado del cliente todo se hace clic.

Así, ahora tenemos esto:

enter image description here

Llegamos a subir, y ahora vemos esto:

enter image description here

Ahora vamos a la necesidad de ocultar el Hecho de botón - tenemos la carga de hacer clic sobre el botón hecho para nosotros.

De modo que el botón en teoría debería ser este ocultarlo:

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

Y el código para el botón es este:

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

Albert, Gracias por tu respuesta. Todavía no puedo trabajar esta parte porque tengo que hacer otro proyecto, pero voy a probar tu respuesta tan pronto como puedo. Su respuesta realmente señaló para mi proyecto. Thx mucho. Que me guarde mucho.
Chang

Hola, he probado con el código y cuando me golpeó la carga botón , los datos pueden insertar en la tabla . Entonces hice un comando seleccionar y poner en datatable pero mi gridview no se puede mostrar totalmente y no ocultar ajaxfileupload campo. Yo lo hice de depuración y mi gridview había datos de mi db tabla.
Chang

Bien, como podemos cargar archivos, que se agregan a la tabla. pero cuando TODOS los archivos (o tal vez usted acaba de seleccionar un archivo) están cargados, entonces tenemos que el botón "done". Yo por supuesto no desea que los usuarios tienen que hacer clic en ese botón hecho, así que tome nota de cómo nos cableado "compilación de todos los eventos" LADO del CLIENTE con JavaScript haga clic en ese botón para nosotros. Quiero decir, para las pruebas, simplemente dejar que el archivo (o archivos) de cargar. Y, a continuación, haga clic en ese botón que ejecuta el código detrás para tomar ahora los valores de la base de datos de la tabla y se muestran en la cuadrícula. Como se señaló, necesitaremos añadir el user_id a la mesa.
Albert D. Kallal

Así que no desea que los usuarios tienen que hacer clic en ese botón cuando se hace - que es lo que la pequeña cantidad de JavaScript no - me hizo suponer que usted ha jQuery disponible en esa página (no todos????). Y una vez que verfied que esto funciona, entonces vamos a ocultar que el botón "done". Pero, si no de alambre hasta que el código js para que haga clic en ese botón (ya que DEBEMOS TENER un completo servicio post-volver a ocurrir!!! - tienes que devolver. Usted no puede poner la visualización de la cuadrícula de código en el lado del servidor ajax archivo de evento load - usted DEBE hacer clic en un botón para el posterior. Así que siga el sobre marcado con el código js para hacer clic en el botón.
Albert D. Kallal

Nota: en el anterior, cómo el código a la pantalla de la cuadrícula es en el commadn hacer clic de botón. Para ser claro, no podemos poner a la visualización de la cuadrícula de código en cualquiera de los ajax archivo de carga de control de eventos. Tenemos que separar botón. Para las pruebas, basta con colocar un plano de jane botón en la página web. Después de su up-la carga se realiza, a continuación, haga clic en el botón para ejecutar la pantalla de código de la cuadrícula. Una vez que conseguir que el trabajo, a continuación, añadir el sobre el código js en automático haga clic en ese botón. Y, a continuación, agregue un estilo "display:none" para ocultar el botón del usuario.
Albert D. Kallal

En otros idiomas

Esta página está en otros idiomas

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