ASP.NET: избегайте многократных нажатий на кнопку - PullRequest
1 голос
/ 25 августа 2010

Я использую DevExpress ASPxButton , и мне было интересно, как я могу запретить пользователю нажимать кнопку более одного раза?

В основном это делает оператор обновления / вставки.

Ответы [ 4 ]

2 голосов
/ 25 августа 2010

Это можно сделать с помощью следующего кода:

var buttonClicked = false;

function MyBtnClick(s,e){
  if(buttonClicked) return;
  buttonClicked = true;
  // do something
}

<ASPxButton id="btn" runat="server">
  <ClientSideEvents Click="function(s,e) { MyBtnClick(s,e); } "/>
</ASPxButton>
1 голос
/ 25 августа 2010

На стороне клиента вы можете отключить его при нажатии.

На стороне сервера мой любимый подход - обычно отправлять одноразовые номера с данными формы, а затем отклонять повторяющиеся одноразовые номера.

Как всегда, клиентская сторона выполняет быструю и (надеюсь) дружественную проверку, серверная сторона проверяет наверняка, даже если код на стороне клиента страдает от какой-то неожиданной проблемы с браузером или кто-то намеренно портит.

0 голосов
/ 07 января 2013

В коде, в котором вы запускаете запрос на обновление, просто добавьте в начало кода:

ButtonNameOrID.Enabled = False // add ; to end if C#

Затем в конце кода добавить:

ButtonNameOrID.Enabled = True // add ; to end if C#

Это отключит / включит кнопку из вашего кода C # или VB.

0 голосов
/ 25 августа 2010

Не уверен насчет aspxbutton, но в целом у вас будет что-то подобное в атрибуте onclick элемента управления.

onclick="this.disabled=true;"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...