2 Stimmen

Aktualisieren Sie den Fortschritt der Verarbeitung nach dem Hochladen der Datei

Ich habe ein Webformular mit zwei Upload-Steuerelementen und einer Reihe von Textfeldern. Wenn die Schaltfläche gedrückt wird, werden die Dateien hochgeladen und dann verarbeitet. Das Hochladen nimmt keine Zeit in Anspruch, aber die Verarbeitung schon. Ich weiß, dass ich kein Upload-Steuerelement in einem Update-Panel haben kann, also weiß ich nicht, wie ich das Update-Fortschritts-Steuerelement verwenden kann, um meinen Fortschritt anzuzeigen.

Meine Seite mit einem Updateprogress-Steuerelement, das funktioniert, ist wie folgt:

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1" DynamicLayout="true">
            <ProgressTemplate>
                <div class="LOADING">
                    Your data is being processed<br />
                    <br />
                    <img src="/images/loading.gif" /><br />
                    <br />
                    Please wait...
                </div>
            </ProgressTemplate>
        </asp:UpdateProgress>
        <div class="addFixture">
            <asp:ValidationSummary ID="ValidationSummary1" ValidationGroup="fixture" runat="server" />
            <label>
                Type
                <asp:DropDownList ID="ddlType" runat="server" AppendDataBoundItems="true">
                    <asp:ListItem Text=""></asp:ListItem>
                </asp:DropDownList>
                <label>
                    Date
                </label>
                <asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
                <label>
                    Name 1</label>
                <asp:TextBox ID="txtName1" runat="server"></asp:TextBox>
                <label>
                    Name 2
                    <asp:TextBox ID="txtName2" runat="server"></asp:TextBox>
                    <label>
                        First XML File</label>
                    <asp:FileUpload ID="firstFileUp" runat="server" />
                    <br />
                    <label>
                        Second Xml File</label>
                    <asp:FileUpload ID="secondFileUp" runat="server" />
                    <br />
                    <br />
                    <asp:Button ID="SubmitButton"  runat="server" CausesValidation="true" Text="Submit" OnClick="SubmitButton_Click" />
                    <asp:Label ID="ErrorMessageLabel" runat="server" EnableTheming="false"></asp:Label>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

Ich habe danach gesucht, aber die Leute scheinen zu versuchen, den Fortschritt des Datei-Uploads und nicht den der Verarbeitung zu erhalten.

Kann jemand helfen?

3voto

Yuriy Rozhovetskiy Punkte 21846

Entfernen Sie das UpdatePanel, da Sie die FileUpload-Steuerelemente darin nicht verwenden können. Fügen Sie der SubmitButton OnClientClick Eigenschaft den folgenden Wert hinzu: OnClientClick="showProgress()" Fügen Sie der Seite auch die folgende Javascript-Funktion hinzu:

function showProgress() {
     var updateProgress = $get("<%= UpdateProgress1.ClientID %>");
     updateProgress.style.display = "block";
}

Übrigens, erwägen Sie, ein asynchrones Datei-Upload-Steuerelement wie eines aus der Ajax Control Toolkit-Bibliothek zu verwenden

0voto

Ta01 Punkte 30128

Usted puede ein UpdatePanel und den FileUpload verwenden, wenn Sie die ASyncFileUploadControl . Es funktioniert ziemlich gut. Stellen Sie sicher, dass Sie die neueste Version herunterladen, weil es ein paar Probleme mit früheren Versionen gab.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X