Skip to main content

GridExportCustomizeCellEventArgs.DataItem Property

Returns the data source item that is bound to the data row being processed.

Namespace: DevExpress.Blazor

Assembly: DevExpress.Blazor.v23.2.dll

NuGet Package: DevExpress.Blazor

Declaration

public object DataItem { get; }

Property Value

Type Description
Object

If the processed cell belongs to a data row, the property returns a data item bound to this row. Otherwise, the property returns null.

Remarks

Use the DataItem property to get the data source item that is bound to the data row being processed. If the current cell does not belong to a data row (the AreaType property returns a value other than DataArea), the DataItem property returns null.

Pass the DataItem property value to the GetDataItemValue method to get the item’s field value when the Grid is bound to one of the following data sources:

In other cases, you can cast the DataItem property value to the corresponding type and use the {DataItem.FieldName} notation to get the item’s field value.

The code sample below demonstrates how to add hyperlinks to the exported grid cell values.

<DxGrid @ref="Grid" Data="@Data" PagerVisible="false" >
    <Columns>
        <DxGridDataColumn FieldName=@nameof(TestModel.Name) Width="280" >
            <CellDisplayTemplate>
                @context.Value
            </CellDisplayTemplate>
        </DxGridDataColumn>
        <DxGridDataColumn FieldName=@nameof(TestModel.Universal) Width="100" />
        <DxGridDataColumn FieldName=@nameof(TestModel.DXperience) Width="100" />
        <DxGridDataColumn FieldName=@nameof(TestModel.WinForms) Width="100" />
        <DxGridDataColumn FieldName=@nameof(TestModel.WPF) Width="100" />
        <DxGridDataColumn FieldName=@nameof(TestModel.ASP) Caption= "ASP.NET and Blazor" Width="100" />
        <DxGridDataColumn FieldName=@nameof(TestModel.DevExtreme) Caption="DevExtreme Complete" Width="100" />
    </Columns>
    <DataColumnCellDisplayTemplate>
        @if((bool)context.Value == true) {
            <span class="grid-icon grid-icon-check"></span>
        }
    </DataColumnCellDisplayTemplate>
</DxGrid>
<DxButton Text="Export to XLSX" Click="ExportXlsx_Click" />

@code {
    object? Data { get; set; }
    IGrid Grid { get; set; }

    protected override async Task OnInitializedAsync() {
        Data = await _testModelService.GetDataSourceAsync();
    }
    async Task ExportXlsx_Click() {
        var options = new GridXlExportOptions();
        options.CustomizeCell = (e) => {
            if (e.AreaType == DevExpress.Export.SheetAreaType.DataArea && e.ColumnFieldName == "Name") {
                var product = e.DataItem as TestModel;
                e.Hyperlink = product.Url;
                e.Handled = true;
            }
        };
        await Grid.ExportToXlsxAsync("ExportResult", options);
    }
}

Grid - Hyperlinks in exported file

See Also