Skip to main content
All docs
V25.1
  • 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;
        }
    }
    

    Blazor Grid PDF export - Customize Cells

    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;
        }
    }
    

    Blazor TreeList PDF export - Customize Cells

    See Also