UpdateProgress не будет отображаться при обновлении панели обновления с использованием JavaScript. - PullRequest
1 голос
/ 24 января 2012

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

Если я нажму кнопку на панели обновлений, загрузчик прогресса будет отображаться очень хорошо. Однако, если я выберу кнопку с помощью jQuery и введу .click(), загрузчик не появится. Панель действительно отправляет и загружает контент правильно, но загрузчик прогресса не запускается.

Есть идеи, почему это будет?

Ответы [ 2 ]

1 голос
/ 26 января 2012

Я только что попробовал ваш сценарий. Здесь отлично работает.

Вот HTML

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:UpdateProgress runat="server" ID="UpdateProgress1">
                <ProgressTemplate>
                    <img src="Images/ajax-loader.gif" />
                </ProgressTemplate>
            </asp:UpdateProgress>
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>

    <input id="btnTest" title="JQuery Click" onclick="ClickButton1()" type="button"  value="JQuery Click" />

    <script type="text/javascript">
        function ClickButton1() {     
      //  alert('#<%=Button1.ClientID %>');
        $('#<%=Button1.ClientID %>').click();
        }
    </script>

Вот код конца, показывающий загрузку изображения в течение 5 секунд

 protected void Button1_Click(object sender, EventArgs e)
 {
    Thread.Sleep(5000);
 }
0 голосов
/ 25 января 2012

Я так и не нашел ответ на этот вопрос, но это не имеет значения. Я узнал, что панели обновления делают только один запрос за раз по причине. Жизненный цикл страницы и состояние представления не могут быть нарушены, поэтому асинхронные запросы могут выполняться только по одному за раз.

MVC за победу.

...