When I used SfGrid TValue,Did i will lose AllowGrouping and Others Objects??

@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" };

}




3 Replies 1 reply marked as answer

RN Rahul Narayanasamy Syncfusion Team July 21, 2021 04:30 AM UTC

Hi Wen-Ting Zhuang, 

Greetings from Syncfusion. 

Query: When I used SfGrid TValueDid i will lose AllowGrouping and Others Objects?? 

We have validated your query and we suspect that you are facing difficulties while using Grouping feature with CustomAdaptor. While using CustomAdaptor, we suggest you to handle the Grouping action in CustomAdaptor. Find the below code snippets and sample for your reference. 

 
<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> 
        <GridColumn Field=@nameof(Order.CustomerID) HeaderText="Customer Name" Width="150"></GridColumn> 
        <GridColumn Field=@nameof(Order.Freight) HeaderText="Freight" Width="150"></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; 
        } 
    } 
} 


Please let us know if you have any concerns. 

Regards, 
Rahul 


Marked as answer

WZ Wen-Ting Zhuang July 22, 2021 08:37 AM UTC

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



    }

}




JP Jeevakanth Palaniappan Syncfusion Team July 23, 2021 05:47 AM UTC

Hi Wen-Ting Zhuang, 
 
We are not clear about the problem you are facing in Dapper. You can handle the grouping in Read/ReadAsync method of custom adaptor as suggested in the previous response. We have attached the below documentation regarding the dapper for your reference. 
 
 
If you are still facing any problem then kindly share us some more information on your query  
 
  1. Provide us more information on your query.
  2. Share us a video demo showing the problem you are facing.
  3. Kindly share us the runnable issue sample in which you are facing the problem.
 
Regards, 
Jeevakanth SP. 


Loader.
Up arrow icon