2012-02-23 87 views
0

我有8个只接受整数的文本框。如何计算每个文本框中用户输入的值的总和,结果将显示为标签。用户点击提交按钮后,标签的值(数字结果)将被存储在数据库中。有谁知道?谢谢。期待听到你们的声音。 我得到这个错误:输入字符串的格式不正确。 在这一行:计算文本框的总价值

int total = 0; 
total = int.Parse(TextBox2.Text) + int.Parse(TextBox4.Text) + int.Parse(TextBox6.Text) + int.Parse(TextBox8.Text) + int.Parse(TextBox10.Text) + int.Parse(TextBox12.Text) + int.Parse(TextBox14.Text) + int.Parse(TextBox16.Text);  
Label1.Text = total.ToString(); 
+0

当表单提交时,或者在用户输入数字时,客户端是否需要计算? – Jamiec 2012-02-23 08:17:09

+0

方式模糊不全。何时(重新)计算总和?什么db? – 2012-02-23 08:20:09

+0

真的吗?那么我使用sql – 2012-02-23 08:22:42

回答

2

你可以做到这一点的方法: -

totalValue = int.Parse(txtBox1.Text) + int.Parse(txtBox2.Text) + int.Parse(txtBox3.Text) + int.Parse(txtBox4.Text) + int.Parse(txtBox5.Text) + int.Parse(txtBox6.Text) + int.Parse(txtBox7.Text) + int.Parse(txtBox8.Text); 

存储在标签中的值

label.Text = totalValue; 

OR

的foreach(控制下,在this.Controls) {
if(c.GetType()。Name.ToString()==“TextBox”) { totalValue + = int.Parse(String.Format(“txtBox {0} .Text”,count)); } }

foreach (Control c in this.Controls) 
{    
     if (c.GetType().Name.ToString()=="TextBox") 
     { 
       int value = 0; 
       if(int.TryParse(((TextBox)c).Text,out value)) 
        totalValue += value; 
     } 
} 

存储在标签中的值

label.Text = totalValue; 
+0

,如何在标签中显示它? – 2012-02-23 08:22:18

+0

@WhoMe:更新了答案。 – 2012-02-23 08:29:58

+0

谢谢。祝你有个愉快的日子 – 2012-02-23 08:33:59

1
int total = 0; 
total = int.Parse(txtBox1.Text) + int.Parse(txtBox2.Text) + int.Parse(txtBox3.Text) + int.Parse(txtBox4.Text) + int.Parse(txtBox5.Text) + int.Parse(txtBox6.Text) + int.Parse(txtBox7.Text) + int.Parse(txtBox8.Text); 
Label1.Text = total.ToString(); 
+0

谢谢seany :) – 2012-02-23 08:39:53

+0

如果任何文本框为空,则'int.Parse()'将抛出异常空白。建议'int.TryParse()' – Nick 2017-05-22 05:18:05

3

如果你可以使用jQuery添加一个普通类所有的文本框,说 “textToCalculate” 的,如果标识标签是“labelToShowResult”

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.textToCalculate').change(function() { 
      var total = 0; 

      $('.textToCalculate').each(function(){ 
       total += parseInt(this.value); 
      }); 

      $('#labelToShowResult').val(total); 
     }); 

    }); 
</script> 

希望这个工程

2

其简单所有你需要做的就是将所有的文本框文本转换为双精度,并将它们与FOR循环相加。

1

回答你的第二个问题是在参数保持的总价值,并通过使用

Request.QueryString 

前一个网页.. 第二种方式就是保持总价值得到一些其他的页面,价值在全局(静态)变量中,并在你的任何页面中使用它。