怎么样 CustomCellValue ?
CustomCellValue
发回数据源后刷新数据。
无论何时更新数据或更改视图,都会调用它。
...我需要做的是根据网格中其他字段的值计算网格中一个字段的值。
完成此任务的最佳方法是使用 未绑定的列 特征。
以下示例演示如何通过处理实现此功能 ColumnView.CustomUnboundColumnData 事件:
// Provides data for the Total column. void gridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e) { if (e.Column.FieldName == "Total" && e.IsGetData) e.Value = getTotalValue(e.ListSourceRowIndex); } // Returns the total amount for a specific row. decimal getTotalValue(int listSourceRowIndex) { DataRow row = nwindDataSet.Tables["Order Details"].Rows[listSourceRowIndex]; decimal unitPrice = Convert.ToDecimal(row["UnitPrice"]); decimal quantity = Convert.ToDecimal(row["Quantity"]); decimal discount = Convert.ToDecimal(row["Discount"]); return unitPrice * quantity * (1 - discount); }
原始示例: 如何:添加存储任意数据的未绑定列
您还可以使用实现未绑定列的计算值 表达式 :
GridColumn columnTotal = new GridColumn(); columnTotal.FieldName = "Total"; columnTotal.Caption = "Total"; columnTotal.UnboundType = DevExpress.Data.UnboundColumnType.Decimal; columnTotal.UnboundExpression = "[Quantity] * [UnitPrice] * (1 - [Discount])"; gridView1.Columns.Add(columnTotal);