Skip to main content
All docs
V25.1
  • TreeListExportOptions.ExportSelectedRowsOnly Property

    Specifies whether the TreeList exports selected rows only.

    Namespace: DevExpress.Blazor

    Assembly: DevExpress.Blazor.v25.1.dll

    NuGet Package: DevExpress.Blazor

    Declaration

    [DefaultValue(false)]
    public override bool ExportSelectedRowsOnly { get; set; }

    Property Value

    Type Default Description
    Boolean false

    true to export the selected rows only; false to export all TreeList rows.

    Remarks

    Note

    If ExportSelectedRowsOnly is enabled, the TreeList component exports data in a flat format (ignores hierarchy). When bound to a hierarchical data source, the component also exports children of each selected row.

    The following example exports selected TreeList rows as a flat list:

    @rendermode InteractiveServer
    @inject SpaceObjectDataProvider SpaceObjectDataProvider
    
    <DxTreeList @ref="TreeList" Data="TreeListData" ChildrenFieldName="Satellites">
        <Columns>
            <DxTreeListSelectionColumn Width="60px" AllowSelectAll="true" />
            <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>
        <ToolbarTemplate>
            <DxToolbar>
                <DxToolbarItem Text="Export to XLSX" Click="ExportXlsx_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 ExportXlsx_Click() {
            await TreeList.ExportToXlsxAsync("ExportResult", new TreeListXlExportOptions() {
                ExportSelectedRowsOnly = true
            });
        }
    }
    

    You can use the RowExporting event to export selected records and keep row hierarchy. Note that you need to export all parents of a selected row to display this row in the exported document (even if parents are unselected). The following example exports selected space objects and keeps hierarchy:

    @rendermode InteractiveServer
    @inject SpaceObjectDataProvider SpaceObjectDataProvider
    
    <DxTreeList @ref="TreeList"
                Data="TreeListData"
                ChildrenFieldName="Satellites"
                @bind-SelectedDataItems="SelectedDataItems">
        <Columns>
            <DxTreeListSelectionColumn Width="60px" AllowSelectAll="true" />
            <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>
        <ToolbarTemplate>
            <DxToolbar>
                <DxToolbarItem Text="Export to XLSX" Click="ExportXlsx_Click" BeginGroup="true" />
            </DxToolbar>
        </ToolbarTemplate>
    </DxTreeList>
    
    @code {
        ITreeList TreeList { get; set; }
        object TreeListData { get; set; }
        IReadOnlyList<object> SelectedDataItems { get; set; }
    
        protected override async Task OnInitializedAsync() {
            TreeListData = SpaceObjectDataProvider.GenerateData();
        }
        async Task ExportXlsx_Click() {
            await TreeList.ExportToXlsxAsync("ExportResult", new TreeListXlExportOptions() {
                RowExporting = OnRowExporting,
            });
        }
        void OnRowExporting(TreeListRowExportingEventArgs args) {
            var spaceObject = (SpaceObject)args.DataItem;
            if (SelectedDataItems.Contains(spaceObject))
                return;
            foreach(var child in spaceObject.Satellites)
                if (SelectedDataItems.Contains(child))
                    return;
                else foreach (var child2 in child!.Satellites)
                    if (SelectedDataItems.Contains(child2))
                        return;
            args.Cancel = true;
        }
    }
    

    For more information about data export in the TreeList component, refer to the following topic: Export Data in Blazor TreeList.

    See Also