【发布时间】:2014-02-14 15:58:52
【问题描述】:
如何清除Gridview中Bounded column的单元格值??我执行一些计算并将一个 int 值设置为一个单元格(有界列)。我再次重新计算它并尝试在有界列时间的同一单元格中设置值不变,因此我尝试在为其设置值之前清除单元格值。
private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
// % to amt
object obj = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"]) == DBNull.Value
? 0
: (gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"]));
decimal a = Convert.ToDecimal(obj);
if (a > 0)
{
gridColumn1.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
gridColumn1.UnboundExpression = "[UnitPrice] * ([DiscountPercentage] / 100.0)";
}
// amt to %
object dm = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"]) == DBNull.Value
? 0
: (gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"]));
decimal a1 = Convert.ToDecimal(dm);
if (a1 > 0)
{
gridColumn2.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
gridColumn2.UnboundExpression = "Round(([DiscountAmount] / [UnitPrice]) * 100.0, 2)";
}
}
private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
// % to amt
object obj = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"]) == DBNull.Value
? 0
: (gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"]));
decimal a = Convert.ToDecimal(obj);
if (a > 0)
{
object obj2 = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["gridColumn1"]);
int aa = Convert.ToInt32(obj2);
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"], aa);
}
// amt to %
object dm = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"]) == DBNull.Value
? 0
: (gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountAmount"]));
decimal a1 = Convert.ToDecimal(dm);
if (a1 > 0)
{
object obj3 = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["gridColumn2"]);
int aa2 = Convert.ToInt32(obj3);
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["DiscountPercentage"], aa2);
}
}
提前致谢。
【问题讨论】:
-
请提供一些代码。
-
@DennisTraub 我更新了我的代码,请验证。
标签: c# winforms gridview devexpress