Серверная часть asp.net CustomValidator не останавливает мою программу? - PullRequest
1 голос
/ 26 января 2012

У меня есть DropDownList, связанный с БД. Я также вручную добавляю к нему пункт "(другое)"

Когда пользователь выбирает «(другое)», JQuery запускает и .Show() скрытое <asp:TextBox>, где пользователь должен что-то ввести.

Я пытаюсь проверить этот TextBox. Конечно, поскольку я просто скрываю это с помощью клиентской стороны, я не могу использовать RequiredFieldValidator + RegularExpressionValidator, поэтому я попробовал CustomValidator, с которым я не очень знаком:

protected void validatorOther(object sender, ServerValidateEventArgs e)
{
    if (dropdownVisitorType.SelectedItem.ToString() == "(other)")
    {
        e.IsValid = (textboxOtherVisitorType.Text != "");
    }
}

protected void buttonRegister_Click(object sender, EventArgs e)
{
    //a whole bunch of code here...
}

А потом из моего aspx

<asp:CustomValidator runat="server" id="validatorOtherVisitorType" ValidateEmptyText="true" onservervalidate="validatorOther" errormessage="*" />

Когда я пытаюсь отладить, кажется, что e.IsValid успешно вернет false. Тем не менее, моя веб-страница, похоже, просто игнорирует ее и в любом случае продолжает действовать, делая валидатор бесполезным. Что я делаю не так?

1 Ответ

3 голосов
/ 26 января 2012

Требуется принудительное подтверждение при нажатии кнопки регистрации:

this.Page.Validate();
if (this.Page.IsValid)
{
// your registration logic.
}
...