2013-07-31 5 views
1

Я изучаю, как использовать настраиваемый валидатор для проверки на стороне сервера, но я не могу заставить его работать. Всякий раз, когда я нажимаю кнопку, при пустой текстовой строке сообщение об ошибке не появляется. Что я делаю не так?Пользовательский валидатор не работает для текстового поля

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

<asp:CustomValidator ID="CustomValidator1" ControlToValidate="TextBox1" 
    OnServerValidate="CustomValidator1_ServerValidate" ValidationGroup="ValidateGp" 
    ErrorMessage="This is a custom error validator" runat="server"/> 

<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="ValidateGp"/> 

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    if (args.Value.Equals(string.Empty)) 
    { 
     args.IsValid = false; 
    } 
    else 
    { 
     args.IsValid = true; 
    } 
} 
+0

Возможный дубликат: http://stackoverflow.com/questions/5119821/asp-net-custom-validator-not-firing-for-textbox –

ответ

3

Вы пропустили ValidateEmptyText = «истинный» для

<asp:CustomValidator ID="CustomValidator1" 
        ValidateEmptyText="true" runat="server" ValidationGroup="ValidateGp" ErrorMessage="This is a custom error validator" ControlToValidate="TextBox1" OnServerValidate="CustomValidator1_ServerValidate"></asp:CustomValidator> 
0

В качестве альтернативы принуждая пустую проверку, так как в некоторых случаях пустой TextBox является действительным (!), Я предлагаю вам ловушку TextBox изменения события и силы Page.Validate().

Смежные вопросы