@page "/DaliyReport"
@using BlazorApp.Data
@using BlazorApp.Models
@*@inject UserLogStateService UserLogStateService*@
@using Syncfusion.Blazor.Navigations
<div class="col-lg-12 control-section">
<div class="content-wrapper">
<div class="row">
<SfGrid TValue="DaliyReport" AllowGrouping="true" AllowPaging="true" ShowColumnMenu="true" Toolbar="@(new List<string>() { "Add", "Edit", "Delete", "Update", "Cancel","Search" })">
<SfDataManager AdaptorInstance="typeof(DaliyReportDataAdaptor)" Adaptor="Adaptors.CustomAdaptor"></SfDataManager>
<GridEditSettings AllowAdding="true" AllowDeleting="true" AllowEditing="true" Mode="EditMode.Dialog" Dialog="DialogParams">
</GridEditSettings>
@*<GridPageSettings PageCount="5" PageSize="20"></GridPageSettings>*@
@*<GridEvents RowSelected="RowSelectHandler" RowDeselected="RowDeSelectHandler" TValue="DaliyReport"></GridEvents>*@
<GridColumns>
<GridColumn Field="@nameof(DaliyReport.UserUpdate)" AutoFit="true" HeaderText="上傳" Width="auto"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.FID)" IsPrimaryKey="true" Visible="false" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.C_DATE)" HeaderText="時間" Width="auto" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.LotNo)" HeaderText="批號" Width="auto" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Doffcnt)" HeaderText="落紗總數" Width="auto" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Ncnt)" HeaderText="N數" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Mcnt)" HeaderText="M絲數" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.M_SHIFT)" HeaderText="M+M-" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Dcnt)" HeaderText="D絲數" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Lcnt)" HeaderText="L絲數" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Ycnt)" HeaderText="YO絲數" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Scratch)" HeaderText="伸撚不良數" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.DDwire)" HeaderText="DD絲" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.LLwire)" HeaderText="LL絲" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.BreakYarn)" HeaderText="崩紗" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Wool)" HeaderText="刮傷" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Stretch)" HeaderText="毛絲" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Oily)" HeaderText="油汙" EditType="EditType.NumericEdit" AutoFit="true"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.M_PCT)" HeaderText="M%" AutoFit="true" CustomAttributes="@(new Dictionary<string, object>(){ { "class", "e-attr" }})"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.D_PCT)" HeaderText="D%" AutoFit="true" CustomAttributes="@(new Dictionary<string, object>(){ { "class", "e-attr" }})"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.L_PCT)" HeaderText="L%" AutoFit="true" CustomAttributes="@(new Dictionary<string, object>(){ { "class", "e-attr" }})"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Y_PCT)" HeaderText=" Y%" AutoFit="true" CustomAttributes="@(new Dictionary<string, object>(){ { "class", "e-attr" }})"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.Scratch_PCT)" HeaderText="伸撚不良%" Edit="false" AutoFit="true" CustomAttributes="@(new Dictionary<string, object>(){ { "class", "e-attr" }})"></GridColumn>
<GridColumn Field="@nameof(DaliyReport.BreakYarn_PCT)" HeaderText="崩紗%" Edit="true" AutoFit="true" CustomAttributes="@(new Dictionary<string, object>(){ { "class", "e-attr" }})"></GridColumn>
</GridColumns>
</SfGrid>
</div>
</div>
</div>
<style>
.e-attr {
background: #5DADE2;
font-family: "Bell MT";
color: red;
font-size: 5px;
}
</style>
@code{
private DialogSettings DialogParams = new DialogSettings { MinHeight = "400px", Width = "450px" };
}
<SfGrid TValue="Order" ID="Grid" AllowSorting="true" AllowFiltering="true" AllowPaging="true" AllowGrouping="true">
<SfDataManager AdaptorInstance="@typeof(CustomAdaptor)" Adaptor="Adaptors.CustomAdaptor"></SfDataManager>
<GridPageSettings PageSize="8"></GridPageSettings>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" IsPrimaryKey="true" TextAlign="@TextAlign.Center" Width="140"></GridColumn>
</GridColumns>
</SfGrid>
@code{
. . .
// Implementing custom adaptor by extending the DataAdaptor class
public class CustomAdaptor : DataAdaptor
{
// Performs data Read operation
public override object Read(DataManagerRequest dm, string key = null)
{
IEnumerable<Order> DataSource = Orders;
DataResult DataObject = new DataResult();
. . .
int count = DataSource.Cast<Order>().Count();
if (dm.Skip != 0)
{
//Paging
DataSource = DataOperations.PerformSkip(DataSource, dm.Skip);
}
if (dm.Take != 0)
{
DataSource = DataOperations.PerformTake(DataSource, dm.Take);
}
if (dm.Group != null)
{
IEnumerable ResultData = DataSource.ToList();
// Grouping
foreach (var group in dm.Group)
{
ResultData = DataUtil.Group<Order>(ResultData, group, dm.Aggregates, 0, dm.GroupByFormatter);
}
DataObject.Result = ResultData;
DataObject.Count = count;
return dm.RequiresCounts ? DataObject : (object)ResultData;
}
return dm.RequiresCounts ? new DataResult() { Result = DataSource, Count = count } : (object)DataSource;
}
}
} |
BY THE WAY
WHO CAN USED IN DAPPER?
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Syncfusion.Blazor;
using Syncfusion.Blazor.Data;
namespace BlazorApp.Data
{
public class DaliyReportDataAdaptor : DataAdaptor
{
private DaliyReportDataAccessLayer _dataLayer;
public DaliyReportDataAdaptor(DaliyReportDataAccessLayer DaliyReportDataAccessLayer)
{
_dataLayer = DaliyReportDataAccessLayer;
}
public override async Task<object> ReadAsync(DataManagerRequest dataManagerRequest, string key = null)
{
List<DaliyReport> bugs = await _dataLayer.GetDaliyReportAsync();
int count = await _dataLayer.GetDaliyReportCountAsync();
return dataManagerRequest.RequiresCounts ? new DataResult() { Result = bugs, Count = count } : count;
}
public override async Task<object> InsertAsync(DataManager dataManager, object data, string key)
{
await _dataLayer.AddDaliyReportAsync(data as DaliyReport);
return data;
}
public override async Task<object> UpdateAsync(DataManager dataManager, object data, string keyField, string key)
{
await _dataLayer.UpdateDaliyReportAsync(data as DaliyReport);
return data;
}
public override async Task<object> RemoveAsync(DataManager dataManager, object primaryKeyValue, string keyField, string key)
{
await _dataLayer.RemoveDaliyReportAsync(Convert.ToInt32(primaryKeyValue));
return primaryKeyValue;
}
// Performs data Read operation
}
}