#asp.net #events #validation
#asp.net #Мероприятия #проверка
Вопрос:
у меня есть две кнопки на странице. Одна кнопка отвечает за проверку текстовых полей, связанных с регистрацией, а другая — с входом в систему. Проблема заключалась в том, что когда я нажимаю одну из кнопок, она обновляет страницу и показывает все недопустимые поля (я не хочу, чтобы поля регистрации проверялись RequiredFieldValidator, когда пользователь нажимает кнопку входа).
итак, что я сделал, я использовал событие инициализации.. чтобы этого не происходило…
static bool oneButtonPressed;
protected void Page_Init(object sender, EventArgs e)
{
if (oneButtonPressed)
{
REgisterAge.Visible = false;
RegisterAge2.Enabled = false;
RegisterAge3.Enabled = false;
RegisterPassword.Enabled = false;
RegisterPassword2.Enabled = false;
RegisterEmail.Enabled = false;
RegisterEmail2.Enabled = false;
}
else
{
EntryPasswordRequiredFieldValidator10.Enabled = false;
EntryNameEntryRequiredFieldValidator9.Enabled = false;
}
}
protected void entry_Click(object sender, EventArgs e)
{
oneButtonPressed = true;
}
protected void submitButton_Click(object sender, EventArgs e)
{
oneButtonPressed = false;
}
}
Проблема здесь в том, что bool всегда равен false, когда страница отправляется обратно и загружается снова .. я помню, как мой учитель говорил, что я мог бы использовать ViewState или статическую переменную / метод для сохранения моих значений. Я здесь ошибаюсь.. должен ли я использовать состояние просмотра?
Ответ №1:
Почему бы вам не назначить группу проверки каждому из полей соответствующую кнопку отправки. Различные группы проверки гарантируют, что проверка не сработает в нерелевантной форме.
<asp:TextBox runat="server" ID="txtName" ValidationGroup="vRegistration"></asp:TextBox>
<asp:LinkButton runat="server" ID="btnSubmit" ValidationGroup="vRegistration"></asp:LinkButton>
Комментарии:
1. Потрясающе. ваш ответ мне очень помог