Отключить кнопку на панели обновления при асинхронной обратной передаче - PullRequest
3 голосов
/ 30 сентября 2010

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

Есть ли способ избежать использования стороннего элемента управления для этого?через JQuery или любым другим способом?

Ответы [ 2 ]

7 голосов
/ 30 сентября 2010

Вы можете сделать это:

cs

//in pageload
//the request is not in postback or async mode
bt1.OnClientClick = "this.disabled = true; " + ClientScript.GetPostBackEventReference(bt1, null) + ";");

Примечание: вы можете заменить "this.disabled = true" нафункция js, которая будет лучше обрабатывать отключение кнопки и, возможно, отображать дружественное сообщение.


Или это:

http://msdn.microsoft.com/en-us/library/bb383989.aspx

js

Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckStatus);
function CheckStatus(sender, arg)
{
   var postBackElement = arg.get_postBackElement();
   var prm = Sys.WebForms.PageRequestManager.getInstance();
   if (prm.get_isInAsyncPostBack() && postBackElement.id == "btn1") {
      arg.set_cancel(true);
      //display friendly message, etc
   }
}

Примечание: Я изменил его, чтобы он проверял идентификатор кнопки.Заменить "btn1"

Удачи !!

4 голосов
/ 30 сентября 2010

Вы можете использовать сообщение о запуске и остановке панели обновления, чтобы отключить управлениеНапример

<script type="text/javascript"> 
var prm = Sys.WebForms.PageRequestManager.getInstance();    
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);

function InitializeRequest(sender, args) {
   document.getElementById("ButtonToDisable").disabled = true;
}

function EndRequest(sender, args) {
   document.getElementById("ButtonToDisable").disabled = false;
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...