GridControl中的计算单位块错误

时间:2014-01-16 18:08:53

标签: c#

我有一个gridcontrol,位于unitPriceTotalPriceQuantity列。当我使用此代码计算unitPrice时,它会计算UnitPrice = 0中的第一行和另一行请帮助吗?

private void Chillers_Load(object sender, EventArgs e)
{
    this.ornekTblTableAdapter.Fill(this.chillersDataSet.OrnekTbl);

    InitMDBData();

    var row = gridView1.GetFocusedDataRow();

    var totalprice = Convert.ToDecimal(row["TotalPrice"]);
    var quantity = Convert.ToDecimal(row["Quantity"]);
    row["UnitPrice"] = totalprice / quantity;
}

2 个答案:

答案 0 :(得分:1)

你需要一个简单的foreach循环

foreach(var row in gridView1.Rows)
{
    var totalprice = Convert.ToDecimal(row["TotalPrice"]);
    var quantity = Convert.ToDecimal(row["Quantity"]);
    row["UnitPrice"] = totalprice / quantity;
}

更新:对于你的特殊dataGridView试试这个:

for(int i=0; i< gridView1.RowCount; i++)
{
    var totalprice = Convert.ToDecimal(gridView.GetRowCellValue(i, "TotalPrice"));
    var quantity = Convert.ToDecimal(gridView.GetRowCellValue(i, "Quantity"));
    gridView1.SetRowCellValue(i,"UnitPrice",(totalprice / quantity));
}

答案 1 :(得分:0)

您只需更改一行gridView1.GetFocusedDataRow()。

您需要将计算值添加到原始数据源,或者将数据绑定表达式放在gridview标记中,即

<asp:templatecolumn><%# Eval(((decimal)Container.DataItem["TotalPrice"]) / ((decimal)Container.DataItem["TotalPrice"]) %></asp:templatecolumn>