我在GridView列中键入了值。
将一些数据输入GridView后,我希望它计算一个特定列的总和。
我怎样才能做到这一点?
答案 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;
}
需要考虑的一些因素:
确保您汇总的数据是数字形式。因此列类型必须是整数,双精度或浮点数(但肯定不是nvarchar或varchar)。这将确保在对值进行求和时程序不会进入错误状态。
在上面的代码中,取自StackOverflow中的另一个answer,该列中的值被解析为double,以允许十进制数,而不仅仅是整数。
总和需要存储在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();
}