Проверка поля только одной кнопкой
У меня есть следующий валидатор в текстовом поле внутри модального диалогового окна.
<asp:RequiredFieldValidator runat = "server"
ErrorMessage = "Role name can not be empty."
ControlToValidate = "tbxRoleName" />
Он работает так, как должно, за исключением того, что триггеры проверки на всех других кнопках OnClick-обработчика также отображаются на aspx-странице. Поскольку диалог невидим, он выглядит как кнопки, которые просто не работают на странице. Мое обходное решение состоит в том, чтобы добавить CausesValidation = "false" для всех кнопок на странице. Но это очень плохое решение, и я думаю, что должен быть более умный способ.
Ответы
Ответ 1
Назначьте ValidationGroup каждому валидатору, а также кнопке, которая должна инициировать проверку (но не другую кнопку). Что-то вроде:
<asp:RequiredFieldValidator ValidationGroup='valGroup1' ... />
<asp:Button ValidationGroup='valGroup1' Text='I trigger validation' ... />
Ответ 2
Как насчет установки ValidationGroup?
http://msdn.microsoft.com/en-us/library/ms227424.aspx
Ответ 3
У кнопки есть свойство CausesValidation, которое может отключить проверку для этой кнопки.
Подробнее здесь: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.causesvalidation.aspx
Ответ 4
Также вы можете использовать "causevalidation" для кнопки. Если это неверно, кнопка не будет отвечать на проверку на странице aspx.
Пример:
<asp:Button runat="server" Text="Cancel" CausesValidation="false" />