Проверка, события страницы и состояние просмотра

#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. Потрясающе. ваш ответ мне очень помог