如何在TextChanged事件中添加列值?

时间:2014-11-22 12:17:35

标签: c# asp.net datagridview

我在GridView列中键入了值。

将一些数据输入GridView后,我希望它计算一个特定列的总和。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

如果您需要显示dataGridView中特定列的总和,那么这可能有所帮助:

private void dataGridView2_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 5)
        textBox9.Text = CellSum().ToString();
}

private double CellSum()
{
    double sum = 0;
    for (int i = 0; i < dataGridView2.Rows.Count; ++i)
    {
        double d = 0;
        Double.TryParse(dataGridView2.Rows[i].Cells[5].Value.ToString(), out d);
        sum += d;
    }
    return sum;
}

需要考虑的一些因素:

  1. 确保您汇总的数据是数字形式。因此列类型必须是整数,双精度或浮点数(但肯定不是nvarchar或varchar)。这将确保在对值进行求和时程序不会进入错误状态。

  2. 在上面的代码中,取自StackOverflow中的另一个answer,该列中的值被解析为double,以允许十进制数,而不仅仅是整数。

  3. 总和需要存储在double类型的变量中。然后由您决定如何处理它:是否要将其存储在数据库中的其他位置或以标签形式显示给用户。

答案 1 :(得分:0)

你必须在TextchangedEvent中加总值,所以请试试这个

protected void txtintroId_TextChanged(object sender, EventArgs e)
    {
float total= 0;
        foreach (GridViewRow gridViewRow in gridView.Rows)
        {

            lbltotal = (Label)gridViewRow.FindControl("lbltotal");

            float rowValue = 0;
            if (float.TryParse(lbltotal.Text.Trim(), out rowValue))
                total += rowValue;
        }
        GridView1.FooterRow.Cells[3].Text = total.ToString();
    }
相关问题