[성현모] Grid 인덱스 오류 수정
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
|
||||
@inject ContextMenuService ContextMenuService
|
||||
|
||||
<RadzenDataGrid Style="height:calc(100vh - 23rem); font-size: 20px;" TItem="TDataModel" Data="@DataList" AllowPaging PageSize="100"
|
||||
<RadzenDataGrid Style="height:calc(100vh - 23rem); font-size: 20px;" TItem="TDataModel" Data="@DataList" AllowPaging PageSize="@PageSize"
|
||||
AllowFiltering FilterMode="FilterMode.Advanced" CellRender="@CellRender"
|
||||
SelectionMode="DataGridSelectionMode.Single" @bind-Value="@SelectedRow"
|
||||
CellContextMenu="@OnCellContextMenu" RowSelect="@SelectRow" RowDoubleClick="@OnRowDoublClick">
|
||||
@ -82,78 +82,40 @@
|
||||
[Parameter]
|
||||
public bool HostColumnMerge { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public int PageSize { get; set; } = 30;
|
||||
|
||||
private IList<TDataModel> SelectedRow;
|
||||
|
||||
private void CellRender(DataGridCellRenderEventArgs<TDataModel> args)
|
||||
{
|
||||
if (args.Column.Property == null)
|
||||
if (args.Column.Property == null || !args.Column.Property.ToLower().Equals("testdate"))
|
||||
return;
|
||||
|
||||
int index = DataList.ToList().FindIndex(x => x.Equals(args.Data));
|
||||
|
||||
//testdate 컬럼일때 날짜 병합
|
||||
if (args.Column.Property.ToLower().Equals("testdate"))
|
||||
{
|
||||
var properties = typeof(TDataModel).GetProperties().ToList();
|
||||
|
||||
var testDate = properties.Find(x => x.Name.ToLower() == "testdate");
|
||||
var host = properties.Find(x => x.Name.ToLower() == "host");
|
||||
var section = properties.Find(x => x.Name.ToLower() == "section");
|
||||
|
||||
if (testDate != null && host != null && section != null)
|
||||
{
|
||||
int rowCount = 0;
|
||||
var take = DataList.Skip(index).Take(((index / PageSize) + 1) * PageSize - index);
|
||||
foreach (var r in take)
|
||||
{
|
||||
var rowTestDate = testDate.GetValue(args.Data);
|
||||
var rowHost = host.GetValue(args.Data);
|
||||
var rowSection = section.GetValue(args.Data);
|
||||
|
||||
var data = DataList.First(x => (DateTime?)testDate.GetValue(x) == (DateTime?)rowTestDate);
|
||||
if (data != null)
|
||||
if (r.TestDate.Value.Date == args.Data.TestDate.Value.Date)
|
||||
{
|
||||
var dataTestDate = testDate.GetValue(data);
|
||||
var dataHost = host.GetValue(data);
|
||||
var dataSection = section.GetValue(data);
|
||||
|
||||
if (rowHost == dataHost && rowSection == dataSection)
|
||||
if (r.ModelName == args.Data.ModelName)
|
||||
{
|
||||
int rowCount = DataList.Count(x => (DateTime?)testDate.GetValue(x) == (DateTime?)rowTestDate);
|
||||
|
||||
args.Attributes.Add("rowspan", rowCount);
|
||||
rowCount += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//host merge 옵션
|
||||
if (HostColumnMerge == true)
|
||||
{
|
||||
if (args.Column.Property.ToLower().Equals("host"))
|
||||
{
|
||||
var properties = typeof(TDataModel).GetProperties().ToList();
|
||||
|
||||
var testDate = properties.Find(x => x.Name.ToLower() == "testdate");
|
||||
var host = properties.Find(x => x.Name.ToLower() == "host");
|
||||
var section = properties.Find(x => x.Name.ToLower() == "section");
|
||||
|
||||
if (testDate != null && host != null && section != null)
|
||||
else
|
||||
{
|
||||
var rowTestDate = testDate.GetValue(args.Data);
|
||||
var rowHost = host.GetValue(args.Data);
|
||||
var rowSection = section.GetValue(args.Data);
|
||||
|
||||
var data = DataList.First(x => host.GetValue(x).ToString() == rowHost.ToString());
|
||||
if (data != null)
|
||||
{
|
||||
var dataTestDate = testDate.GetValue(data);
|
||||
var dataHost = host.GetValue(data);
|
||||
var dataSection = section.GetValue(data);
|
||||
|
||||
if (rowHost == dataHost && rowSection == dataSection)
|
||||
{
|
||||
int rowCount = DataList.Count(x => host.GetValue(x).ToString() == rowHost.ToString());
|
||||
|
||||
args.Attributes.Add("rowspan", rowCount);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
args.Attributes.Clear();
|
||||
if (rowCount > 0)
|
||||
args.Attributes.Add("rowspan", rowCount);
|
||||
}
|
||||
}
|
||||
|
||||
@ -183,7 +145,6 @@
|
||||
private async Task SelectRow(TDataModel data)
|
||||
{
|
||||
await OnSelectRow.InvokeAsync(data);
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private async Task OnRowDoublClick<T>(DataGridRowMouseEventArgs<T> args)
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
@page "/tra"
|
||||
@rendermode InteractiveServer
|
||||
|
||||
@using Web.Tra.Services
|
||||
@inject CPXV2LogService CPXV2LogService
|
||||
@inject PopupService PopupService
|
||||
@ -64,7 +66,11 @@
|
||||
<RadzenStack Style="width: 18rem;" Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.SpaceBetween">
|
||||
<RadzenLabel Text="Merge By PartNumber"></RadzenLabel>
|
||||
<RadzenSwitch @bind-Value=@IsMergePartNumberOption></RadzenSwitch>
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
<RadzenStack Style="width: 18rem;" Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.SpaceBetween">
|
||||
<RadzenLabel Text="Page Size"></RadzenLabel>
|
||||
<RadzenNumeric @bind-Value=@PageSize></RadzenNumeric>
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
@ -82,7 +88,7 @@
|
||||
@if (tab.Key == EnumTabs.OverviewC1.ToString())
|
||||
{
|
||||
<TraGrid TDataModel="OverviewMerged" DataList="@Overviews" OnClickContextMenu="@OnClickDetailOverviewContextMenu"
|
||||
OnSelectRow="@OnSelectRowOverview">
|
||||
OnSelectRow="@OnSelectRowOverview" PageSize="@PageSize">
|
||||
</TraGrid>
|
||||
}
|
||||
|
||||
@ -115,6 +121,7 @@
|
||||
private string SelectionStepVersion = string.Empty;
|
||||
|
||||
private bool IsMergePartNumberOption = false;
|
||||
private int PageSize = 30;
|
||||
|
||||
RadzenTabs tabs;
|
||||
int SelectedTabIndex = 0;
|
||||
|
||||
Reference in New Issue
Block a user