[英]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.