Кнопка и валидаторы
У меня есть таблица с двумя текстовыми полями. Каждое текстовое поле имеет обязательный валидатор, чтобы пользователь вставлял данные в текстовое поле.
У меня также есть таблица входа для подтверждения прав пользователей.
Когда я отправляю кнопку входа в систему, появляются валидаторы из первой таблицы, и пользователь не может войти в систему. Я изменил свойство кнопки входа (вызывает проверку) на false, но валидаторы, которые я добавил в таблицу входа, не появились.,
Поэтому, пожалуйста, как я могу решить эту проблему.
2 ответа
Я думаю, что вы можете решить свою проблему с помощью ValidationGroups. Вот выдержка из страницы с более подробным объяснением для вас:
На этой странице есть две группы - "Группа1" и "Группа2" валидаторов. Затем на странице есть две кнопки - при нажатии кнопки 1 срабатывает первая группа валидаторов. Когда кнопка 2 нажата, вторая группа валидаторов сработает. Обратная передача будет заблокирована на стороне клиента по умолчанию, если проверка не удалась:
<html>
<body>
<form runat=“server”>
<asp:textbox id=“TextBox1” runat=“server”/>
<asp:requiredfieldvalidator ValidationGroup=“Group1”
ErrorText=“Need to Fill in Value!”
ControlToValidate=“TextBox1”
runat=“server”/>
<asp:textbox id=“TextBox2” runat=“server”/>
<asp:requiredfieldvalidator ValidationGroup=“Group2”
ErrorText=“Need to Fill in Value!”
ControlToValidate=“TextBox2”
runat=“server”/>
<asp:button text=“Group1” ValidationGroup=“Group1” runat=“server”/>
<asp:button text=“Group2” ValidationGroup=“Group2” runat=“server”/>
</form>
</body>
</html>
Вам нужно использовать атрибут ValidationGroup как для кнопок, так и для валидаций. Это позволяет определенным действиям принудительно применять подмножество валидаторов на странице только при нажатии кнопки.
<asp:TextBox ID="txtA" runat="server" />
<asp:RequiredFieldValidator ID="rfvA" runat="server" ErrorMessage="Message." ControlToValidate="txtA" ValidationGroup="A" />
<asp:Button ID="btnA" runat="server" Text="A" ValidationGroup="A" />
<asp:TextBox ID="txtB" runat="server" />
<asp:RequiredFieldValidator ID="rfvB" runat="server" ErrorMessage="Message." ControlToValidate="txtA" ValidationGroup="B" />
<asp:Button ID="btnB" runat="server" Text="B" ValidationGroup="B" />
Теперь, когда щелкает btnA, он только проверяет, является ли rfvA действительным (проверяет txtA), а когда нажимается btnB, он только проверяет, является ли rfvB действительным. И да, вы можете иметь несколько элементов управления проверкой в одной группе проверки.
Когда вы устанавливаете для свойства CausesValidation значение false, вы отключаете все действия по проверке кнопки, а не только те, которые вам не нужны.