Blazor server grid not sorting

I'm using the sample code at:  

            https://github.com/SyncfusionExamples/blazor-datagrid-dapper-crud

The sample code works fine but if I enable AllowSorting="true" the grid does not sort.   I see the arrows displayed as if the grid should be sorting in ascending and descending order.  Is there additional changes needed to get sorting to work?



1 Reply 1 reply marked as answer

VN Vignesh Natarajan Syncfusion Team April 7, 2021 03:59 AM UTC

Hi Edward,  
 
Thanks for contacting Syncfusion support.  
 
Query: “The sample code works fine but if I enable AllowSorting="true" the grid does not sort. Is there additional changes needed to get sorting to work? 
 
Yes, while using CustomAdaptor data operations like filtering, sorting, searching, etc. needs to be handled in the ReadAsync method of the CustomAdaptor. In that Github sample, we have used custom adaptor to bind datasource to Grid component using Dapper ORM. Since the sample explains the CRUD operations, we have not handled the data operations in it.  
 
Kindly modify the ReadAsync method as below in BugDataAdaptor.cs to perform DataOperation in Grid.  
 
public override async Task<objectReadAsync(DataManagerRequest dm, string key = null) 
        { 
            IEnumerable<Bug> bugs = await _dataLayer.GetBugsAsync();             
    if (dm.Search != null && dm.Search.Count > 0) 
            { 
                // Searching 
                bugs = DataOperations.PerformSearching(bugs, dm.Search); 
            } 
            if (dm.Sorted != null && dm.Sorted.Count > 0) 
            { 
                // Sorting 
                bugs = DataOperations.PerformSorting(bugs, dm.Sorted); 
            } 
            if (dm.Where != null && dm.Where.Count > 0) 
            { 
                // Filtering 
                bugs = DataOperations.PerformFiltering(bugs, dm.Where, dm.Where[0].Operator); 
            } 
            int count = bugs.Cast<Bug>().Count(); 
            if (dm.Skip != 0) 
            { 
                //Paging 
                bugs = DataOperations.PerformSkip(bugs, dm.Skip); 
            } 
            if (dm.Take != 0) 
            { 
                bugs = DataOperations.PerformTake(bugs, dm.Take); 
            } 
            return dm.RequiresCounts ? new DataResult() { Result = bugs, Count = count } : count; 
        } 
 
 
Refer our UG documentation for your reference 
 
 
Please get back to us if you have further queries.  
 
Regards,
Vignesh Natarajan
 


Marked as answer
Loader.
Up arrow icon