Skip to main content
All docs
V25.1
  • GridDocumentExportCustomizeCellEventArgsBase.Handled Property

    Specifies whether to apply customizations to the processed cell.

    Namespace: DevExpress.Blazor

    Assembly: DevExpress.Blazor.v25.1.dll

    NuGet Package: DevExpress.Blazor

    Declaration

    public bool Handled { get; set; }

    Property Value

    Type Description
    Boolean

    true to apply cell customizations; false to ignore cell customizations and export the cell with default settings.

    Remarks

    When exporting Grid/TreeList data to PDF, handle the CustomizeCell event to customize table cells in the output file. Set the Handled event argument to true to apply changes made in the handler. Otherwise, the processed cell is exported with default settings.

    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