Как отключить ASP.NET AJAX ConfirmButtonExtender при сбое проверки страницы?
У меня есть кнопка отправки с использованием Microsoft ConfirmButton extender, чтобы спросить: "Вы уверены?". Однако он запускается независимо от того, проходит ли страница проверку на стороне клиента.
<asp:TextBox ID="TextBox1" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidatorTextBox1"
runat="server"
ControlToValidate="TextBox1"
ErrorMessage="First name is required"
Display="Dynamic" />
...
<asp:Button ID="Button1"
runat="server"
Text="Submit"
CausesValidation="True" />
<ajaxToolkit:ConfirmButtonExtender ID="ConfirmButtonExtenderButton1"
runat="server"
TargetControlID="Button1"
ConfirmText="Are you sure?" />
...
<asp:ValidationSummary id="ValidationSummary1"
runat="server"
ShowMessageBox="True" />
Таким образом, если пользователь оставляет обязательное поле пустым и нажимает кнопку "Отправить". Она увидит два окна сообщений:
Один для проверки...
http://img120.imageshack.us/img120/8305/validationzn6.gif
Тогда один для подтверждения...
http://img228.imageshack.us/img228/678/confirmationam3.gif
(Примечание: OK и Cancel оба просто отменяют.)
Не имеет смысла показывать подтверждение, если проверка не удалась. Это должен быть один или другой. Как я могу это сделать?
Обновить:
Если я пытаюсь использовать ConfirmOnFormSubmit, я получаю это предупреждение:
Проверка (ASP.Net): Атрибут 'ConfirmOnFormSubmit' не является допустимым атрибутом элемента 'ConfirmButtonExtender'.
Проверка (ASP.Net): Атрибут 'ConfirmOnFormSubmit' не является допустимым атрибутом элемента 'ConfirmButtonExtender'. http://img382.imageshack.us/img382/1391/confirmonformsubmitow3.gif
1 ответ
Убедитесь, что для ConfirmOnFormSubmit установлено значение TRUE в ConfirmButtonExtender.
ConfirmOnFormSubmit - True, если диалог подтверждения должен подождать до того, как форма будет отправлена на отображение. Это полезно, когда используются валидаторы ASP.NET, и подтверждение должно отображаться только после прохождения всех валидаторов.
РЕДАКТИРОВАТЬ: Согласно этому сайту это действительно. Попробуйте обновить до последней версии и / или игнорировать intellisense и просто посмотреть, что произойдет, когда вы публикуете его.