blazor-devexpress-dot-blazor-ae249fc7.md
Lists values that specify whether the Grid preserves group settings in ExportSelectedRowsOnly mode.
Namespace : DevExpress.Blazor
Assembly : DevExpress.Blazor.v25.2.dll
NuGet Package : DevExpress.Blazor
public enum GridSelectedRowsExportMode
| Name | Description |
|---|---|
Flat |
The Grid exports selected rows as a flat list.
|
| KeepGrouping |
The Grid exports selected records and corresponding group rows.
|
The following properties accept/return GridSelectedRowsExportMode values:
When exporting Grid data to PDF/XLS/XLSX, enable the ExportSelectedRowsOnly property to export selected rows only. Once enabled, the Grid component ignores group settings and exports records as flat data. Set SelectedRowsExportMode to KeepGrouping to export selected records and their parent group rows.
The following example exports selected records and corresponding group rows to PDF:
@rendermode InteractiveServer
@using DevExpress.Drawing;
@inject WeatherForecastService ForecastService
<DxGrid @ref="Grid" Data="@forecasts" ShowGroupPanel="true">
<Columns>
<DxGridSelectionColumn Width="60px" AllowSelectAll="true" />
<DxGridDataColumn Caption="Date" FieldName="Date" />
<DxGridDataColumn Caption="Temperature (C)" FieldName="TemperatureC" />
<DxGridDataColumn Caption="Temperature (F)" FieldName="TemperatureF" />
<DxGridDataColumn Caption="Summary" FieldName="Summary" GroupIndex="0" />
</Columns>
<ToolbarTemplate>
<DxToolbar>
<DxToolbarItem Text="Export to PDF" Click="ExportPdf_Click" BeginGroup="true" />
</DxToolbar>
</ToolbarTemplate>
</DxGrid>
@code {
IGrid Grid;
object forecasts;
protected override async Task OnInitializedAsync() {
forecasts = await ForecastService.GetForecastAsync();
}
async Task ExportPdf_Click() {
await Grid.ExportToPdfAsync("ExportResult", new GridPdfExportOptions() {
ExportSelectedRowsOnly = true,
SelectedRowsExportMode = GridSelectedRowsExportMode.KeepGrouping
});
}
}
using System;
public class WeatherForecast {
public int ID { get; set; }
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
public string? Summary { get; set; }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
public class WeatherForecastService {
public readonly string[] Summaries = new[] {
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private List<WeatherForecast>? Forecasts;
public Task<List<WeatherForecast>> GetForecastAsync() {
if (Forecasts == null) {
var rnd = new Random();
Forecasts = Enumerable.Range(1, 25).Select(index => new WeatherForecast {
ID = index,
Date = DateTime.Today.AddDays(index),
TemperatureC = rnd.Next(-20, 55),
Summary = Summaries[rnd.Next(Summaries.Length)]
}).ToList();
}
return Task.FromResult(Forecasts);
}
public Task<List<WeatherForecast>> ChangeForecastAsync(WeatherForecast changed) {
var originalForecast = Forecasts.FirstOrDefault(i => i.ID == changed.ID);
if (originalForecast != null) {
originalForecast.TemperatureC = changed.TemperatureC;
originalForecast.Summary = changed.Summary;
originalForecast.Date = changed.Date;
}
else {
Forecasts.Add(changed);
}
return Task.FromResult(Forecasts);
}
public Task<List<WeatherForecast>> Remove(WeatherForecast forecast) {
Forecasts.Remove(forecast);
return Task.FromResult(Forecasts);
}
}
// ...
builder.Services.AddSingleton<WeatherForecastService>();
See Also