C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
using
DevExpress.XtraGrid.Views.Base;
using
DevExpress.XtraGrid.Columns;
private
void
Form1_Load(
object
sender, System.EventArgs e) {
// ...
gridControl1.ForceInitialize();
// Create an unbound column.
GridColumn unbColumn = gridView1.Columns.AddField(
"Total"
);
unbColumn.VisibleIndex = gridView1.Columns.Count;
unbColumn.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
// Disable editing.
unbColumn.OptionsColumn.AllowEdit =
false
;
// Specify format settings.
unbColumn.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
unbColumn.DisplayFormat.FormatString =
"c"
;
// Customize the appearance settings.
unbColumn.AppearanceCell.BackColor = Color.LemonChiffon;
}
// 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);
}
// Provides data for the Total column.
private
void
gridView1_CustomUnboundColumnData(
object
sender, CustomColumnDataEventArgs e) {
if
(e.Column.FieldName ==
"Total"
&& e.IsGetData) e.Value =
getTotalValue(e.ListSourceRowIndex);
}
|
Via 博客园刘维