2016-08-23 61 views
-1

如果我有一組文本框說第一組,另一組文本框說第二組,他們兩個在網格視圖的編輯模板現在我想驗證第一組的總和等於客戶端第二組的總和以允許保存或添加。如何驗證客戶端中的文本框值的總和


EX:

txt1 
txt2 
txt3 
txt4 

我想驗證:

Decimal.Parse(txt1.Text)+ Decimal.Parse(txt2.Text) = Decimal.Parse(txt3.Text)+ Decimal.Parse(txt4.Text) 

注:

一個或一個以上的這些文本框可能是空的,在這種情況下,我 考慮價值0


如何做到像使用asp.net驗證一些事情。

+1

你想給的字符串連接比較或做文本框包含數字,你要比較的增加? –

+0

@MatiasCicero:我想比較這些文本框的值的總和而不是字符串連接。 –

+0

你需要更具體關於你想要什麼..如果你想驗證文本框的字符串值爲整數,那麼你需要做一個檢查將文本框值轉換爲Int並分配一個變量來保存var grpOneSum = Convert.ToInt32(txt1.Txex)+ Convert.ToInt32(txt2.Text)... etc'的總和也向我們展示了每個文本框中的值將保存的示例。或者使用'CustonVailidtors' – MethodMan

回答

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>