Come posso modificare il File Info in Ajax Controllo di Caricamento dei File ,Asp.net(VB)?

0

Domanda

Sto creando un trascinare il file caricati tramite Ajax Controllo di Caricamento dei File in Asp.net(VB). Voglio mostrare il nome del file, caricato datetime, dimensione del file quando ho trascinato nel pannello. Come posso fare per quella impostazione? Potrei modificare il testo per droparea come

$(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("アップロード");
            
        });

Ma non so come modificare il file info del display.

Questo è il mio trascinare forma e voglio cambiare da application/pdf per uploaded datetime

enter image description here

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

Migliore risposta

0

Non si può davvero mostrare il "tempo" di caricare fino a quando l'utente inizia.

È GIÀ possibile vedere la dimensione del file sul vostro schermo, cap, quindi, perché è necessario che?

si dispone di:

enter image description here

quindi, in precedenza, vedere il nome del file, viene visualizzata la dimensione del file.

Tuttavia, fino a quando non si preme su di carico e di start up-il caricamento dei file, non so ancora l'up-tempo di caricamento di come ancora, non è vero?

Così, quando si colpisce up-load file, quindi ogni file selezionati saranno caricate, e nel lato server (codice dietro), si trova questo:

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

Ora, quando TUTTI i file vengono caricati, quindi lato server anche UpLoadComplete tutti il fuoco, e POI si può prendere il suddetto elenco/tabella e visualizzare i file caricati insieme al nome del file, la dimensione e il tempo.

Ma, in realtà, non hanno la capacità di visualizzare i file e le informazioni quali il tempo fino al momento che hai caricato il file e poi hanno il tempo, giusto?

Edit:

Forse l'idea non era del tutto chiaro. Quello che sto suggerendo è che hai l'up-loader nella pagina.

Così, dire che siamo noi a cadere in questo tipo di markup:

        <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 si noti l'uso del lato client tutto fatto clic.

Così, ora abbiamo questo:

enter image description here

Ci ha colpito la carica, e ora vediamo questo:

enter image description here

Ora si deve (devono) nascondere il pulsante Fatto - abbiamo il caricamento, cliccando sul pulsante fatto per noi.

In modo che il pulsante in teoria dovrebbe diventare questo per nasconderlo:

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

E il codice per il pulsante è questo:

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, Grazie per la tua risposta. Non riesco ancora a lavoro questa parte perchè ho bisogno di fare altro progetto, ma vorrei provare la tua risposta il più presto possibile. La tua risposta davvero indicato per il mio progetto. Thx è tanto. Si salva me un sacco.
Chang

Ciao, ho provato con il tuo codice e quando ho colpito il pulsante carica , i dati possono inserire in tabella . Poi ho fatto una selezione di comando e impostare in una datatable, ma la mia gridview non può mostra completamente e non nascondere ajaxfileupload campo. Ho fatto il debug e la mia gridview aveva dati dal mio db tabella.
Chang

Beh, come abbiamo caricamento dei file, questi vengono aggiunti alla tabella. ma quando TUTTI i file (o forse avete appena selezionato un file) vengono caricati, quindi abbiamo che il pulsante "fatto". Io, naturalmente, non si desidera che gli utenti devono fare clic su tale pulsante fatto, quindi, notare come ci cablata "compilare tutti gli eventi" LATO CLIENT con JavaScript per fare clic su tale pulsante per noi. Voglio dire, per la prova, basta che il file (o i file) up-load. E quindi fare clic su tale pulsante viene eseguito il codice che sta dietro a prendere i valori da tabella di base di dati e la visualizzazione della griglia. Come è noto, ci sarà bisogno di aggiungere il user_id tabella.
Albert D. Kallal

Così ho fatto, non si desidera che gli utenti devono fare clic su tale pulsante quando il fatto che la piccola quantità di JavaScript non - ho fatto supponga di avere jQuery disponibili sulla pagina (non siamo tutti????). E una volta che si verfied che questo funziona, allora possiamo nascondere che il pulsante "fatto". Ma, se non a filo fino a che codice js per fare clic su tale pulsante (dal momento che DOBBIAMO AVERE un intero post-back verificarsi!!! - è NECESSARIO che i post indietro. Non si può mettere la griglia codice lato server ajax file di up-load evento - è NECESSARIO fare clic su un pulsante per il post-back. Quindi, seguire la sopra markup con il codice js per fare clic sul pulsante.
Albert D. Kallal

Nota di cui sopra, come il codice di dispay la griglia è in commadn fatto clic sul pulsante. Quindi, per essere chiari, non possiamo mettere la griglia codice dell'ajax file di backup per il controllo del carico di eventi. Abbiamo bisogno di una separata pulsante. Per la prova, basta semplicemente un piano di jane pulsante sulla pagina web. Dopo il caricamento è fatto, quindi fare clic sul pulsante per eseguire la visualizzazione dei codici di rete. Una volta che si ottenere che il lavoro, quindi aggiungere il suddetto codice js automatico fare clic su tale pulsante. E poi aggiungere un style "display:none" per nascondere il pulsante da parte dell'utente.
Albert D. Kallal

In altre lingue

Questa pagina è in altre lingue

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