更新fileupload之后的处理进度

时间:2011-09-28 14:50:41

标签: c# asp.net asp.net-ajax updatepanel progressdialog

我有一个带有两个上传控件和一些文本字段的webform。 按下按钮后,文件将上传,然后进行处理。 上传不花时间,但处理确实如此。 我知道我在更新面板中没有上传控件,所以我无法弄清楚如何使用更新进度控件来显示我的进度。

我的带有updateprogress控件的页面如下工作:

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

我已经搜索了这个,但是人们似乎正在尝试获取文件上传的进度而不是处理。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

删除UpdatePanel,因为您无法在其中使用FileUpload控件。 使用以下值添加到SubmitButton OnClientClick属性:OnClientClick="showProgress()" 还可以在下面的页面javascript函数中添加:

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

顺便说一下,考虑使用一些异步文件上传控件,就像Ajax Control Toolkit库中的一样;

答案 1 :(得分:0)

如果您使用ASyncFileUploadControl可以使用UpdatePanel和FileUpload。它工作得很好。请确保下载最新版本,因为先前版本存在一些问题。