Предотвращение отправки нескольких форм в ASP.NET - PullRequest
4 голосов
/ 09 марта 2012

В настоящее время я ищу способ предотвратить отправку нескольких форм в ASP.NET (т. Е. Пользователь несколько раз нажимает на кнопку submit, что также вызывает несколько раз событие OnClick-Event)., Я делаю это так:

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        Page.ClientScript.RegisterOnSubmitStatement(GetType(), "ServerForm",
        "if (this.submitted) return false; this.submitted = true; return true;");
    }

Это работает как брелок для синхронных обратных передач - значение 'submit' будет сбрасываться после каждой обратной передачи и предотвращать многократную отправку формы втот же запуск - однако, этот метод не работает для AsyncPostbacks, то есть с UpdatePanel, так что теперь я ищу идею, чтобы это произошло без необходимости отключать каждую кнопку через JS после нажатия кнопки.

Спасибо,

Денис

Ответы [ 4 ]

4 голосов
/ 09 марта 2012

Вы можете использовать Page.get_isInAsyncPostBack () в javascript для проверки состояния асинхронного запроса.

Обратитесь по этой ссылке для получения дополнительной информации: http://ranaictiu -technicalblog.blogspot.com / 2009/03 / предотвращения-параллельного-asynchronous.html

1 голос
/ 09 марта 2012

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

Отправка формы обработки с PRG

0 голосов
/ 09 марта 2012
  1. Можно проверить методы начала и окончания, присутствующие в классе Sys.WebForms.PageRequestManager, чтобы проверить запросы ASync.
  2. Sys.WebForms.PageRequestManager Вы можете изменитькод в приведенном выше примере и отключить кнопку с помощью простого JavaScript, как

    document.getElementById("YouButton.ClientID").disabled = true;

0 голосов
/ 09 марта 2012
...