По какой-либо причине спецификация HTML предписывает, что отключенные элементы не должны включаться в запросы POST . Таким образом, если вы используете JavaScript для отключения элемента HTML в событии onclick на стороне клиента, элемент ввода будет отключен, когда браузер соберет POST-запрос, сервер не будет надлежащим образом уведомлен о том, какой элемент вызвал обратную передачу, и он выиграл. не запускать обработчики событий щелчков на стороне сервера.
Когда для свойства UseSubmitBehavior установлено значение false, ASP.NET отображает элемент ввода типа button вместо обычного ввода типа submit , который ASP.NET Button Control обычно генерирует. Это важно, потому что нажатие на элемент кнопки не вызывает событие отправки формы в браузере.
Вместо того чтобы полагаться на отправку формы в браузере, ASP.NET будет обрабатывать вызов на стороне клиента для __doPostBack () в обработчике onclick этого элемента кнопки. __doPostBack вызовет обратную передачу в явном виде независимо от того, какие данные POST поступают в запросе.
Поскольку обратный вызов поднимается независимо от события отправки в браузере, вы освобождаетесь от ранее упомянутой особенности HTML. Затем вы можете установить OnClientClick «this.disabled = true;», которое будет отображаться как «this.disabled = true; __doPostBack ('Button1', '');", и все будет работать так, как задумано.