验证两个控件(CustomValidator)
本文关键字:控件 CustomValidator 两个 验证 | 更新日期: 2023-09-27 18:10:08
在提交表单之前,我需要测试总和(txtA + txtB)是否大于100。是否可以用CustomValidator
来做到这一点,因为我不知道我是否可以选择controltovalidate
<asp:TextBox ID="txtA" runat="server"></asp:TextBox>
<asp:TextBox ID="txtB" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator2"
runat="server"
ErrorMessage="CustomValidator" />
<asp:Button ID="Button1" runat="server" Text="Button" />
谢谢。
你可以这样做:
<asp:TextBox ID="txtA" runat="server" />
<asp:TextBox ID="txtB" runat="server" />
<asp:CustomValidator ID="CV1"runat="server"
OnServerValidate="ServerValidation"
ErrorMessage="Sum is less than 100" />
后台代码:protected void ServerValidation(object source, ServerValidateEventArgs args)
{
args.IsValid = int.Parse(txtA.Text)+ int.Parse(txtB.Text) >100;
}
当您在页面中放置自定义验证时,您可以将验证器链接到控件,但是如果您想要在多个控件上执行多个验证,则需要包含以下属性
OnServerValidate="MyMethodOnServerSide"
并在服务器端定义该方法
protected void MyMethodOnServerSide(object source, ServerValidateEventArgs args)
{
if (string.IsNullOrEmpty(mytxt1.Text) &&
string.IsNullOrEmpty(mytxt2.Text))
{
args.IsValid = false;
return;
}
args.IsValid = true;
}
将args.IsValid
属性赋值为您需要的值。另一方面,验证是在加载页面之前完成的,因此,如果您单击了一个按钮,该按钮执行了一个操作,例如在一切正确的情况下从DB读取值,则需要在该操作中包含以下检查。
protected void cmdSearch_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
LoadDataFromDB();
}
}
当args.IsValid
为假时,Page.IsValid
也为假。希望对大家有所帮助
您需要添加另一个控件<asp:HiddenField>
,然后利用jQuery
来设置该控件的值。它可能看起来像这样:
<asp:HiddenField ID="SumOfValues" />
<asp:CustomValidator ID="CustomValidator2"
runat="server"
ErrorMessage="CustomValidator"
ControlToValidate="SumOfValues" />
<标题> JQUERY h1> 这应该允许您验证隐藏控件。但是,您需要确保在所有三个控件上都使用ClientIDMode
并将其设置为Static
,以便在它们进入页面时与标记中指定的名称完全一致。
标题>标题>