Изменение курсора в ASP.NET AJAX при асинхронном запросе

UpdateProgress дает возможность отображать информацию о происходящей запросе, но часто пользовать может не видеть её или требуется заблокировать приложение до момента выполнения запроса.

Это можно осуществить, изменив указатель мыши на «Занят» или «Фоновый режим». В ASP.NET это возможно сделать через CSS и InitializeRequest. Заодно мы выключим кнопку на которую кликает пользователь.

    <div id="body">
        <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" runat="server" />

<script language="javascript" type="text/javascript">
  var prm = Sys.WebForms.PageRequestManager.getInstance();
 
  prm.add_initializeRequest(InitializeRequest);
  prm.add_endRequest(EndRequest);
 
  function InitializeRequest(sender, args)
  {
    $get('body').style.cursor = 'wait';
 
    $get(args._postBackElement.id).disabled = true;
  }
 
  function EndRequest(sender, args)
  {
    $get('body').style.cursor = 'auto';
 
    $get(sender._postBackSettings.sourceElement.id).disabled = false;
  }
  </script>

            <div>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>
                        <asp:Label ID="Label1" runat="server" Text="Обнови меня" />
                        <br />
                        <br />
                        <asp:Button ID="Button2" runat="server" OnClick="Button1_Click" Text="Button" />
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>
        </form>
    </div>

В Default.aspx.cs отрабатываем событие клика

protected void Button1_Click(object sender, EventArgs e)
    {
        Thread.Sleep(5000);

        Label1.Text = "Обновился " + DateTime.Now.ToString();

    }

 

3 июля 2007 г. 14:31

Комментарии

Комментариев пока нет.

Добавить комментарий






 
Copyright © Антон Ковалев