繁体   English   中英

ASP.NET自定义验证器不起作用

[英]ASP.NET custom validator is not working

我已经完成了该页面告诉我的所有操作,但是却无法正常工作,我已经看到有人发布有关此问题的信息,并被告知要添加必需的字段验证器,但我仍然这样做,但仍然无法正常工作。

这是客户端部分

                <asp:CustomValidator 
                    ID="CustomValidator1" 
                    runat="server" 
                    ControlToValidate="TextBoxUsername" 
                    ErrorMessage="Username already exists" 
                    OnServerValidate="CustomValidator1_ServerValidate" 
                    ValidateEmptyText="True" <!--tried without this line-->
                    ValidationGroup="form">  <!--tried without this line-->
                </asp:CustomValidator>

这是C#服务器端代码

        protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args){
            args.IsValid = false;
        }

看起来很简单,对吧? 它应该一直出现,对吧? 好吧,它只出现在开始处,然后永远消失,这是因为我在page_load()方法中有此行,但在button_click()方法中也有此行。

Page.Validate();

首先,删除验证组,然后添加Text

<asp:CustomValidator 
    ID="CustomValidator1" 
    runat="server" 
    ControlToValidate="TextBoxUsername" 
    ErrorMessage="Username already exists" 
    Text="Username already exists"
    OnServerValidate="CustomValidator1_ServerValidate" 
    ValidateEmptyText="True">
</asp:CustomValidator>

ErrorMessage将显示在ValidationSummary控件中, Text应显示验证器的位置。

更新按钮以进行验证(无论如何我相信true是默认值,但要明确一点):

然后单击后检查页面是否有效,不需要调用Page.Validate ,因为对于CauseValidation ,它将自动进行。

protected void Button1_Click(object sender, EventArgs e)
{ 
   if (Page.IsValid)
   {
       // Do Cool Stuff
   }
}

另外,在检查click方法时在其上放置一个断点,因为您没有任何客户端连线(例如,验证程序上的ClientValidationFunction="somejsfunction" ),因此您只有在进入服务器端验证时才能点击此代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM