在标记中(如果您使用 AJAX 控件),您可以定义(页脚)聚合格式,如下所示:
<telerik:GridBoundColumn DataField="columnName" HeaderText="Money" UniqueName="uniqueColumnName"
DataFormatString="{0:C}" Aggregate="Sum" FooterAggregateFormatString="{0:C}" />
这将在显示和导出的网格上实现。但是,您可能不想在屏幕上显示它;在这些情况下,您可以从导出事件处理程序中更新属性。您还应该注意,从上面的标记中,有一个DataFormatString
属性可以格式化单元格中显示的数据。
protected void RadGrid_OnExportCellFormatting(object sender, ExportCellFormattingEventArgs e)
{
if ((e.FormattedColumn.DataType == typeof(long))) {
e.Cell.Style("mso-number-format") = "Currency";
if (((e.FormattedColumn) is GridBoundColumn)) {
GridBoundColumn col = e.FormattedColumn;
col.FooterAggregateFormatString = "{0:C}";
}
}
}
否则,您可以使用GridExporting
事件处理程序执行此操作:
protected void RadGrid_GridExporting(object sender, GridExportingArgs e)
{
GridColumn gridCol = grdCustomers.MasterTableView.GetColumnSafe("uniqueColumnName");
if (((gridCol) is GridBoundColumn)) {
GridBoundColumn boundCol = (GridBoundColumn)gridCol;
boundCol.FooterAggregateFormatString = "{0:C}";
}
}
我确信上面完成的转换等可以更有效/正确地实现,但上面的代码应该是一个合理的起点。