GridDocumentExportCustomizeCellEventArgsBase Class
Contains base data for events that customize exported table cells.
Namespace: DevExpress.Blazor
Assembly: DevExpress.Blazor.v25.1.dll
NuGet Package: DevExpress.Blazor
Declaration
public abstract class GridDocumentExportCustomizeCellEventArgsBase :
GridDocumentExportCustomizeElementEventArgsBase
Remarks
Grid Example
The following example exports Grid data to PDF and customizes the output table appearance:
@rendermode InteractiveServer
@using DevExpress.Drawing;
@inject WeatherForecastService ForecastService
<DxGrid @ref="Grid" Data="@forecasts" ShowGroupPanel="true">
<Columns>
<DxGridDataColumn Caption="Date" FieldName="Date" />
<DxGridDataColumn Caption="Temperature (C)" FieldName="TemperatureC" ExportWidth="300"/>
<DxGridDataColumn Caption="Temperature (F)" FieldName="TemperatureF" ExportWidth="300" />
<DxGridDataColumn Caption="Summary" FieldName="Summary" GroupIndex="0" />
</Columns>
<TotalSummary>
<DxGridSummaryItem SummaryType="GridSummaryItemType.Count" FieldName="Date" />
<DxGridSummaryItem SummaryType="GridSummaryItemType.Min" FieldName="TemperatureC" />
<DxGridSummaryItem SummaryType="GridSummaryItemType.Max" FieldName="TemperatureC" />
</TotalSummary>
<ToolbarTemplate>
<DxToolbar>
<DxToolbarItem Text="Export to PDF" Click="ExportPdf_Click" BeginGroup="true" />
</DxToolbar>
</ToolbarTemplate>
</DxGrid>
@code {
IGrid Grid;
private WeatherForecast[]? forecasts;
protected override async Task OnInitializedAsync() {
forecasts = await ForecastService.GetForecastAsync(DateOnly.FromDateTime(DateTime.Now));
}
async Task ExportPdf_Click() {
await Grid.ExportToPdfAsync("ExportResult", new GridPdfExportOptions() {
CustomizeCell = OnCustomizeCell,
});
}
void OnCustomizeCell(GridDocumentExportCustomizeCellEventArgs args) {
if (args.AreaType == DocumentExportAreaType.Header){
args.ElementStyle.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
args.ElementStyle.Font = new DXFont("Arial", 10, DXFontStyle.Bold);
}
if (args.AreaType == DocumentExportAreaType.GroupHeader && args.GroupFieldName == "Summary")
args.Text = args.Value + ":";
if (args.AreaType == DocumentExportAreaType.DataArea) {
args.ElementStyle.BackColor = System.Drawing.Color.MintCream;
if (args.ColumnFieldName.Contains("Temperature")) {
var forecast = (WeatherForecast)args.DataItem;
if (forecast.TemperatureC < 0)
args.ElementStyle.ForeColor = System.Drawing.Color.Blue;
if (forecast.TemperatureC > 30)
args.ElementStyle.ForeColor = System.Drawing.Color.Red;
}
}
if (args.AreaType == DocumentExportAreaType.TotalFooter && args.ColumnFieldName == "TemperatureC") {
args.Text = args.SummaryItems[0].Text + "°C\n" + args.SummaryItems[1].Text + "°C";
args.ElementStyle.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
}
args.Handled = true;
}
}
TreeList Example
The following example exports TreeList data to PDF and customizes the output table appearance:
@rendermode InteractiveServer
@using DevExpress.Drawing
@inject SpaceObjectDataProvider SpaceObjectDataProvider
<DxTreeList @ref="TreeList" Data="TreeListData" ChildrenFieldName="Satellites">
<Columns>
<DxTreeListDataColumn FieldName="Name" />
<DxTreeListDataColumn FieldName="TypeOfObject" Caption="Type" />
<DxTreeListDataColumn FieldName="Mass10pow21kg" Caption="Mass, kg" DisplayFormat="N2" />
<DxTreeListDataColumn FieldName="MeanRadiusInKM" Caption="Radius, km" DisplayFormat="N2" />
</Columns>
<TotalSummary>
<DxTreeListSummaryItem SummaryType="TreeListSummaryItemType.Count" FieldName="Name" />
<DxTreeListSummaryItem SummaryType="TreeListSummaryItemType.Min" FieldName="MeanRadiusInKM" />
<DxTreeListSummaryItem SummaryType="TreeListSummaryItemType.Max" FieldName="MeanRadiusInKM" />
</TotalSummary>
<ToolbarTemplate>
<DxToolbar>
<DxToolbarItem Text="Export to PDF" Click="ExportPdf_Click" BeginGroup="true" />
</DxToolbar>
</ToolbarTemplate>
</DxTreeList>
@code {
ITreeList TreeList { get; set; }
object TreeListData { get; set; }
protected override async Task OnInitializedAsync() {
TreeListData = SpaceObjectDataProvider.GenerateData();
}
async Task ExportPdf_Click() {
await TreeList.ExportToPdfAsync("ExportResult", new TreeListPdfExportOptions() {
CustomizeCell = OnCustomizeCell,
});
}
void OnCustomizeCell(TreeListDocumentExportCustomizeCellEventArgs args) {
if (args.AreaType == DocumentExportAreaType.Header) {
args.ElementStyle.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
args.ElementStyle.Font = new DXFont("Arial", 10, DXFontStyle.Bold);
}
if (args.AreaType == DocumentExportAreaType.DataArea) {
var spaceObject = (SpaceObject)args.DataItem;
if (spaceObject.TypeOfObject == "Planet")
args.ElementStyle.BackColor = System.Drawing.Color.LightBlue;
if (args.ColumnFieldName == "Mass10pow21kg" && (double)args.Value > 10)
args.ElementStyle.Font = new DXFont(args.ElementStyle.Font, DXFontStyle.Bold);
}
if (args.AreaType == DocumentExportAreaType.TotalFooter && args.ColumnFieldName == "MeanRadiusInKM") {
args.Text = args.SummaryItems[0].Text + " km\n" + args.SummaryItems[1].Text + "km";
args.ElementStyle.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
}
args.Handled = true;
}
}
Inheritance
See Also