-2

我有一排listview我有包裹费用。我要做的是,无论单击哪个复选框,该行的包裹成本都会汇总并显示在listview. 我不知道要写什么 - 我只有这段代码,但我不知道如何计算它:

ArrayList em = new ArrayList();
foreach (GridViewRow row in GridView1.Rows)
{
    CheckBox chkselect = (CheckBox)row.FindControl("CheckBox1");
    Label lblcost = (Label)row.FindControl("Label5");
    if (chkselect.Checked)
    {
        em.Add(lblcost.Text);
    }
}

这是我在使用复选框发送邮件时所做的

4

2 回答 2

0

你需要把成本加起来variable,你可能不需要ArrayList这个。您可以将计算出的总成本分配TextTextBox

int total = 0;
foreach (GridViewRow row in GridView1.Rows)
{
    CheckBox chkselect = (CheckBox)row.FindControl("CheckBox1");
    Label lblcost = (Label)row.FindControl("Label5");
    if (chkselect.Checked)
    {         
        total += double.Parse(lblcost.Text);
    }
}
textBoxCost.Text = total.ToString();
于 2013-10-17T11:51:19.913 回答
0

你必须转换label.Text为十进制。

decimal total = 0;
decimal value = 0;
foreach (GridViewRow row in GridView1.Rows)
{
    CheckBox chkselect = (CheckBox)row.FindControl("CheckBox1");
    Label lblcost = (Label)row.FindControl("Label5");
    if (chkselect.Checked)
    {
        if (decimal.TryParse(lblcost.Text, out value))
        {
            total += value;
        }
    }
}

我在这里更安全地使用了为什么输入不是数字的情况。

于 2013-10-17T11:51:39.920 回答