Files
FA_WEB/OrdersManagement/Components/Pages/Shared/ScheduleOrdersGrid.razor
trencik91 e82de66aeb * Changed ScheduleOrdersGrid to show also details
* Changed Column with Recipient from code to name
2025-02-18 15:33:37 +01:00

87 lines
3.5 KiB
Plaintext

@inject NavigationManager NavigationManager
@using Syncfusion.Blazor.Grids
@inherits LayoutComponentBase
<SfGrid @ref="_grid"
TValue="ScheduleOrderDto"
AllowFiltering="true"
AllowPaging="true"
AllowSorting="true"
AllowSelection="true"
DataSource="@_dataSource"
EnableAdaptiveUI="true"
AllowRowClick="true"
SelectionMode="GridSelectionMode.Single"
QueryCellInfo="OnQueryCellInfo"
RowSelected="OnRowSelected">
<GridColumns>
<GridColumn Field=@nameof(ScheduleOrderDto.PONum) HeaderText="Zamówienie Klienta"
Width="150" AllowFiltering="true"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDto.PurchaserCode) HeaderText="Klient"
Width="100" AllowFiltering="true"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDto.RecipientName) HeaderText="Odbiorca"
Width="100" AllowFiltering="true"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDto.LastUpdateDate) HeaderText="Data Utworzenia"
Format="d" Type="ColumnType.Date" Width="130"
AllowFiltering="true"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDto.DocType) HeaderText="Typ Dokumentu"
Width="100" AllowFiltering="true"></GridColumn>
</GridColumns>
<GridTemplates>
<DetailTemplate>
@{
IList<ScheduleOrderDetailDto>? scheduleOrderDetails = (@context as ScheduleOrderDto)?.ScheduleOrderDetails;
<SfGrid AllowFiltering="true"
AllowPaging="true"
AllowSorting="true"
AllowSelection="true"
TValue="ScheduleOrderDetailDto"
DataSource="@scheduleOrderDetails"
EnableAdaptiveUI="true">
<GridColumns>
<GridColumn Field=@nameof(ScheduleOrderDetailDto.Sc_productCode) HeaderText="Pozycja" Width="100"></GridColumn>
<GridColumn Field=@nameof(ScheduleOrderDetailDto.Sh_productCode) HeaderText="Pozycja Klienta"
Width="100"></GridColumn>
</GridColumns>
<GridFilterSettings Type="FilterType.Excel"/>
<GridPageSettings PageSize="10"/>
<GridSelectionSettings Mode="SelectionMode.Row" Type="SelectionType.Single"/>
</SfGrid>
}
</DetailTemplate>
</GridTemplates>
<GridEvents TValue="ScheduleOrderDto" OnRecordDoubleClick="OnRowDoubleClick" />
<GridFilterSettings Type="FilterType.Excel" />
<GridPageSettings PageSize="PageSize" />
</SfGrid>
@code {
[Parameter] public required IEnumerable<ScheduleOrderDto> GridData { get; set; }
[Parameter] public required Func<SfGrid<ScheduleOrderDto>, Task> PassGridRef { get; set; }
[Parameter] public required int PageSize { get; set; }
private SfGrid<ScheduleOrderDto> _grid { get; set; }
private IEnumerable<ScheduleOrderDto> _dataSource = [];
protected override void OnParametersSet()
{
_dataSource = GridData;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
await PassGridRef(_grid);
}
}
private void OnRowDoubleClick(RecordDoubleClickEventArgs<ScheduleOrderDto> obj)
{
int scheduleOrderId = obj.RowData.ID;
NavigationManager.NavigateTo($"/ScheduleOrder/{scheduleOrderId}");
}
}