我正在尝试使用带有关键字"OnServerValidate“的CustomValidator
下面是我在.aspx文件中设置它的位置:
<div class="label">
<div><label for="parentemail1">Email Address</label></div>
<div><asp:TextBox ID="parentemail1" runat="server" MaxLength="40" Columns="40"></asp:TextBox></div>
<asp:CustomValidator id="ParentEmail1Required"
ControlToValidate="parentemail1"
Display="Dynamic"
ErrorMessage="Required"
ValidateEmptyText="true"
OnServerValidate="ServerValidator"
runat="server"/>
</div>下面是OnServerValidate的C#代码隐藏方法:
protected void ServerValidator(object source, ServerValidateEventArgs args)
{
args.IsValid = false;
}我是不是遗漏了什么,提交表单时CustomValidator不是应该触发吗?
我已经阅读了一大堆帖子,甚至在同一个控件上用RequiredFieldValidator尝试了一下,但没有成功。我已经用ClientValidationFunction实现了这一点,但我想访问后台代码中的属性,而不是DOM。
任何帮助都将不胜感激。
发布于 2012-10-18 01:03:53
尝尝这个
protected void ServerValidator(object source, ServerValidateEventArgs args)
{
if(args.IsValid == false)
return;
Response.Redirect("NextPage.aspx");// It will not fire if page is not valid.
}发布于 2014-08-24 06:12:17
参数args没有被发送到服务器,这就是为什么你得不到服务器消息的原因。添加一个按钮可以做到这一点。
将代码更改为
<div>
<div class="label">
<div><label for="parentemail1">Email Address</label></div>
<div><asp:TextBox ID="parentemail1" runat="server" MaxLength="40" Columns="40"></asp:TextBox>
<br />
<asp:Button ID="btnSendData" runat="server" Text="Send Data" />
</div>
<asp:CustomValidator id="ParentEmail1Required"
ControlToValidate="parentemail1"
Display="Dynamic"
ErrorMessage="Required"
ValidateEmptyText="true"
OnServerValidate="ServerValidator"
runat="server" SetFocusOnError="True"/>
</div>
</div>https://stackoverflow.com/questions/12939314
复制相似问题