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