如果我有一组文本框说第一组,另一组文本框说第二组。它们在网格视图的编辑模板中现在我想验证第一组的总和等于第二组的总和在客户端允许保存或添加。
EX:
txt1
txt2
txt3
txt4
我想验证一下:
Decimal.Parse(txt1.Text)+ Decimal.Parse(txt2.Text) = Decimal.Parse(txt3.Text )+ Decimal.Parse(txt4.Text)
注意:
这些文本框中的一个或多个可能为空,在这种情况下为i 考虑值
0
如何使用asp.net验证器做这样的事情。
答案 0 :(得分:0)
您可以使用CustomValidators。 https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator.aspx
下面的一个小例子让你入门。您可以展开myCustomValidation
以包括检查非整数值,最小 - 最大范围等。
<asp:TextBox ID="TextBox1" runat="server" ValidationGroup="myGroup"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox2" runat="server" ValidationGroup="myGroup"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox3" runat="server" ValidationGroup="myGroup"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox4" runat="server" ValidationGroup="myGroup"></asp:TextBox>
<br /><br />
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="myGroup" />
<br />
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Error adding TextBox values" ValidationGroup="myGroup" ClientValidationFunction="myCustomValidation"></asp:CustomValidator>
<script type="text/javascript">
function myCustomValidation(oSrc, args) {
var tb1 = document.getElementById('<%=TextBox1.ClientID %>').value;
var tb2 = document.getElementById('<%=TextBox2.ClientID %>').value;
var tb3 = document.getElementById('<%=TextBox3.ClientID %>').value;
var tb4 = document.getElementById('<%=TextBox4.ClientID %>').value;
if (tb1 == "" || tb2 == "" || tb3 == "" || tb4 == "") {
//to make sure the validator fires if one or more textboxes are left empty
args.IsValid = false;
} else if (((tb1 + tb2) == (tb3 + tb4))) {
args.IsValid = true;
} else {
args.IsValid = false;
}
}
</script>