134 lines
4.6 KiB
Plaintext
134 lines
4.6 KiB
Plaintext
@using AyCode.Blazor.Components.Components.Grids
|
|
|
|
<MgGridToolbarBase @ref="GridToolbar" Grid="Grid" ItemRenderStyleMode="ToolbarRenderStyleMode.Plain" ShowOnlyIcon="ShowOnlyIcon">
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "New")" Click="NewItem_Click" IconCssClass="grid-new-row" Visible="@(!IsEditing)" Enabled="@(!IsSyncing)" />
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "Edit")" Click="EditItem_Click" IconCssClass="grid-edit-row" Visible="@(!IsEditing)" Enabled="@(HasFocusedRow && !IsSyncing)" />
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "Delete")" Click="DeleteItem_Click" IconCssClass="grid-delete-row" Visible="@(!IsEditing)" Enabled="@(false && HasFocusedRow && !IsSyncing)" />
|
|
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "Save")" Click="SaveItem_Click" IconCssClass="grid-save" Visible="@IsEditing" RenderStyle="ButtonRenderStyle.Primary" />
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "Cancel")" Click="CancelEdit_Click" IconCssClass="grid-cancel" Visible="@IsEditing" RenderStyle="ButtonRenderStyle.Secondary" />
|
|
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "Prev Row")" BeginGroup="true" Click="PrevRow_Click" IconCssClass="grid-chevron-up" Enabled="@(HasFocusedRow && !IsSyncing && !IsEditing)" />
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "Next Row")" Click="NextRow_Click" IconCssClass="grid-chevron-down" Enabled="@(HasFocusedRow && !IsSyncing && !IsEditing)" />
|
|
|
|
@if (!OnlyGridEditTools)
|
|
{
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "Column Chooser")" BeginGroup="true" Click="ColumnChooserItem_Click" IconCssClass="grid-column-chooser" />
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "Export")" IconCssClass="grid-export" Visible="false" Enabled="@(HasFocusedRow && !IsEditing)">
|
|
<Items>
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "To CSV")" Click="ExportCsvItem_Click" IconCssClass="grid-export-xlsx" />
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "To XLSX")" Click="ExportXlsxItem_Click" IconCssClass="grid-export-xlsx" />
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "To XLS")" Click="ExportXlsItem_Click" IconCssClass="grid-export-xlsx" />
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "To PDF")" Click="ExportPdfItem_Click" IconCssClass="grid-export-pdf" />
|
|
</Items>
|
|
</DxToolbarItem>
|
|
<DxToolbarItem Text="@(ShowOnlyIcon ? "" : "Reload data")" BeginGroup="true" Click="ReloadData_Click" IconCssClass="grid-refresh" Enabled="@(!IsSyncing && !_isReloadInProgress && !IsEditing)" />
|
|
<DxToolbarItem BeginGroup="true"></DxToolbarItem>
|
|
@ToolbarItemsExtended
|
|
}
|
|
</MgGridToolbarBase>
|
|
|
|
@code {
|
|
[Parameter] public bool OnlyGridEditTools { get; set; } = false;
|
|
[Parameter] public IMgGridBase Grid { get; set; } = null!;
|
|
[Parameter] public RenderFragment? ToolbarItemsExtended { get; set; }
|
|
[Parameter] public EventCallback<ToolbarItemClickEventArgs> OnReloadDataClick { get; set; }
|
|
[Parameter] public bool ShowOnlyIcon { get; set; } = false;
|
|
|
|
public MgGridToolbarBase GridToolbar { get; set; } = null!;
|
|
const string ExportFileName = "ExportResult";
|
|
|
|
private bool _isReloadInProgress;
|
|
|
|
/// <summary>
|
|
/// Whether the grid is currently in edit mode (New or Edit)
|
|
/// </summary>
|
|
private bool IsEditing => Grid?.GridEditState != MgGridEditState.None;
|
|
|
|
/// <summary>
|
|
/// Whether the grid is currently syncing data
|
|
/// </summary>
|
|
private bool IsSyncing => Grid?.IsSyncing ?? false;
|
|
|
|
/// <summary>
|
|
/// Whether there is a focused row in the grid
|
|
/// </summary>
|
|
private bool HasFocusedRow => Grid?.GetFocusedRowIndex() >= 0;
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
}
|
|
|
|
async Task ReloadData_Click(ToolbarItemClickEventArgs e)
|
|
{
|
|
_isReloadInProgress = true;
|
|
try
|
|
{
|
|
await OnReloadDataClick.InvokeAsync(e);
|
|
}
|
|
finally
|
|
{
|
|
_isReloadInProgress = false;
|
|
}
|
|
}
|
|
|
|
async Task NewItem_Click()
|
|
{
|
|
await Grid.StartEditNewRowAsync();
|
|
}
|
|
|
|
async Task EditItem_Click()
|
|
{
|
|
await Grid.StartEditRowAsync(Grid.GetFocusedRowIndex());
|
|
}
|
|
|
|
void DeleteItem_Click()
|
|
{
|
|
Grid.ShowRowDeleteConfirmation(Grid.GetFocusedRowIndex());
|
|
}
|
|
|
|
async Task SaveItem_Click()
|
|
{
|
|
await Grid.SaveChangesAsync();
|
|
}
|
|
|
|
async Task CancelEdit_Click()
|
|
{
|
|
await Grid.CancelEditAsync();
|
|
}
|
|
|
|
void PrevRow_Click()
|
|
{
|
|
Grid.StepPrevRow();
|
|
}
|
|
|
|
void NextRow_Click()
|
|
{
|
|
Grid.StepNextRow();
|
|
}
|
|
|
|
void ColumnChooserItem_Click(ToolbarItemClickEventArgs e)
|
|
{
|
|
Grid.ShowColumnChooser();
|
|
}
|
|
|
|
async Task ExportXlsxItem_Click()
|
|
{
|
|
await Grid.ExportToXlsxAsync(ExportFileName);
|
|
}
|
|
|
|
async Task ExportXlsItem_Click()
|
|
{
|
|
await Grid.ExportToXlsAsync(ExportFileName);
|
|
}
|
|
|
|
async Task ExportCsvItem_Click()
|
|
{
|
|
await Grid.ExportToCsvAsync(ExportFileName);
|
|
}
|
|
|
|
async Task ExportPdfItem_Click()
|
|
{
|
|
await Grid.ExportToPdfAsync(ExportFileName);
|
|
}
|
|
} |