ASPxGridView:添加一个非绑定列

转载自慧都控件网:http://www.evget.com/zh-CN/Info/catalog/18037.html

假设ASPxGridView网格控件被绑定到一个“Orders”数据表(NWIND数据库),该数据表中包含了"UnitPrice", "Quantity" 和 "Discount" 等字段。虽然,在该表中没有一个代表总和的字段,但是可以手动计算如下:UnitPrice*Quantity*(1-Discount)。该示例展示了如何添加一个非绑定列到ASPxGridView中,以展示订单SUM总和。

C#

using DevExpress.Web.ASPxGridView;
protected void ASPxGridView1_Init(object sender, EventArgs e) {
// Creates a column, customizes its settings and appends it to the Columns collection;
GridViewDataTextColumn colTotal = new GridViewDataTextColumn();
colTotal.Caption = "Total";
colTotal.FieldName = "Total";
colTotal.UnboundType = DevExpress.Data.UnboundColumnType.Integer;
colTotal.VisibleIndex = ASPxGridView1.VisibleColumns.Count;
colTotal.PropertiesTextEdit.DisplayFormatString = "c2";
ASPxGridView1.Columns.Add(colTotal);
}
// Populates the unbound column.
protected void ASPxGridView1_CustomUnboundColumnData(object sender,
ASPxGridViewColumnDataEventArgs e) {
if (e.Column.FieldName == "Total") {
decimal unitPrice = Convert.ToDecimal(e.GetListSourceFieldValue("UnitPrice"));
int quantity = Convert.ToInt32(e.GetListSourceFieldValue("Quantity"));
decimal discount = Convert.ToDecimal(e.GetListSourceFieldValue("Discount"));
e.Value = unitPrice * quantity * (1 - discount);
}

VB

Imports DevExpress.Web.ASPxGridView
Protected Sub ASPxGridView1_Init(ByVal sender As Object, ByVal e As System.EventArgs)_
Handles ASPxGridView1.Init
' Creates a column, customizes its settings and appends it to the Columns collection;
Dim colTotal As GridViewDataTextColumn = New GridViewDataTextColumn()
colTotal.Caption = "Total"
colTotal.FieldName = "Total"
colTotal.UnboundType = DevExpress.Data.UnboundColumnType.Integer
colTotal.VisibleIndex = ASPxGridView1.VisibleColumns.Count
colTotal.PropertiesTextEdit.DisplayFormatString = "c2"
ASPxGridView1.Columns.Add(colTotal)
End Sub
' Populates the unbound column.
Protected Sub ASPxGridView1_CustomUnboundColumnData(ByVal sender As Object,_
ByVal e As DevExpress.Web.ASPxGridView.ASPxGridViewColumnDataEventArgs)_
Handles ASPxGridView1.CustomUnboundColumnData
If e.Column.FieldName = "Total" Then
Dim unitPrice As Decimal = Convert.ToDecimal(e.GetListSourceFieldValue("UnitPrice"))
Dim quantity As Integer = Convert.ToInt32(e.GetListSourceFieldValue("Quantity"))
Dim discount As Decimal = Convert.ToDecimal(e.GetListSourceFieldValue("Discount"))
e.Value = unitPrice * quantity * (1 - discount)
End If
End Sub

结果如下:


你可能感兴趣的:(ASPxGridView:添加一个非绑定列)