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 |
|
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.