Обновление прогресса при обработке после загрузки файла - PullRequest
2 голосов
/ 28 сентября 2011

У меня есть веб-форма с двумя элементами управления загрузкой и несколькими текстовыми полями.При нажатии кнопки файлы загружаются, а затем обрабатываются.Загрузка не занимает много времени, но обработка делает.Я знаю, что у меня не может быть элемента управления загрузкой на панели обновлений, поэтому я не могу понять, как использовать элемент управления обновлением, чтобы показать мой прогресс.

Моя страница с элементом управления 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 ]

3 голосов
/ 28 сентября 2011

Удалите UpdatePanel, так как вы не можете использовать внутри него элементы управления FileUpload.Добавьте в свойство SubmitButton OnClientClick со следующим значением: OnClientClick="showProgress()" Также добавьте на страницу функцию javascript, указанную ниже:

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

Кстати, рассмотрите возможность использования некоторого асинхронного элемента управления загрузкой файлов, например, из набора инструментов Ajax Control Toolkit.библиотека

0 голосов
/ 28 сентября 2011

Вы можете использовать UpdatePanel и FileUpload, если вы используете ASyncFileUploadControl . Это работает довольно хорошо. Убедитесь, что вы загрузили последнюю версию, поскольку в предыдущих выпусках было несколько проблем.

...