деактивиране / активиране на бутоните - c #, asp.net

Работя в ASP .Net. Трябва да мога да натисна един бутон, да го забраня, да включа кода и да изпълня някои функции и след като приключат, активирайте отново бутона. В този проект не се случва повторение, тъй като използваме UpdatePanel. Защото, доколкото успях да успея успешно, използвам този синтаксис, за да го деактивирам върху кода зад функцията Page_Load:

btnConnect.Attributes.Add("onClick", "document.body.style.cursor = "wait";this.disabled = true;" + ClientScript.GetPostBackEventReference(btnConnect, string.Empty) + ";");

Това деактивира бутона и разрешава кодазад за изпълнение. Аз просто не мога да разбера как да активирате отново бутона, след като функциите, които се изпълняват в кода зад са направени. Има ли начин да се улови, когато кодът е направено?

Отговори:

0 за отговор № 1

Можете да използвате подход за изчакване след деактивиране:

var that = this; //pointer to button
window.setTimeout(function() { document.body.style.cursor = "";that.disabled = false; }, 1000);

Този подход може да бъде полезен и за предотвратяване на двойно поправяне.

Или плъгинът за обновяване завършва заявката Sys.WebForms.PageRequestManager.endRequest. Добавете инструмент за обработка на събития, за да активирате отново бутона там като друга алтернатива.


1 за отговор № 2

Можете ли да използвате jQuery вместо това? Помислете за такъв поток:

  • при кликване, деактивиране на бутона
  • обадете / POST към ASP.NET URL, ако е необходимо
  • активирайте отново бутона, когато се появи обаждането на URL адреса. Актуализиране на елементите на страницата, пренасочване, предупреждение според нуждите.

0 за отговор № 3

В допълнение към горното ...

Да, използвате UpdatePanel, но се случва PostBack.

Така че, при изпращане на бутона бутон, след успешнообработката е завършена, премахнете атрибута за onClick, който сте добавили по-горе, опитахте ли се да активирате бутона в кода зад и след това да издадете Update () на вашия UpdatePanel?