How to use EJS2 in Angular App with Server side paging, sorting and filtering

I have been trying to use Syncfusion EJS2 control (GRID) for server-side paging, sorting and filtering. I would like to know from Syncfusion, is there any way to do this?

 

If yes can they provide an example?

 

Note: We are using pure RESTful APIs not OData Service. 


3 Replies

PS Pavithra Subramaniyam Syncfusion Team May 17, 2018 12:45 PM UTC

Hi Indika, 

Thanks for contacting Syncfusion support. 

Currently we don’t have support for server side Data operations. We already have this requirement in our feature list and this feature will be available in our upcoming release which will be rolled out on end of May 2018.  

Regards, 
Pavithra S. 



CT Chris Taylor July 18, 2018 06:52 PM UTC

Has server side paging, sorting, and filtering being implemented?  If so, in what version?


PS Pavithra Subramaniyam Syncfusion Team July 19, 2018 12:51 PM UTC

Hi Indika, 
 
We have checked your query and you can perform server side Filtering, Sorting , Paging actions by using following way for RESTFul API. Please refer to the below code example and sample link. 
 
[OrdersCotroller] 
public class OrdersController : Controller 
    { 
         
        public object Get() 
        { 
            var queryString = Request.Query; 
            var data = OrdersDetails.GetAllRecords().ToList(); 
            string sort = queryString["$orderby"];   //sorting query     
            string filter = queryString["$filter"];  //filtering query     
            // Sorting Action 
            if (sort != null)  
            { 
                switch (sort) 
                { 
                    case "OrderID": 
                        if (sort.Substring(sort.IndexOf(' ') + 1) != null) 
                            data = data.OrderByDescending(x => x.OrderID).ToList(); 
                        else 
                            data = data.OrderBy(x => x.OrderID).ToList(); 
                        break; 
                      .  .  . 
                } 
            } 
            // Filtering Action 
            if (filter != null) 
            { 
                var newfiltersplits = filter; 
                var filtersplits = newfiltersplits.Split('(', ')', ' '); 
                var filterfield = filtersplits[1]; 
                var filtervalue = filtersplits[3]; 
                switch (filterfield) 
                { 
                    case "OrderID": 
 
                        data = (from cust in data 
                                where cust.OrderID.ToString() == filtervalue.ToString() 
                                select cust).ToList(); 
                        break; 
                    .  .  . 
           } 
            // Paging Action 
            int skip = Convert.ToInt32(queryString["$skip"]);  //paging query     
            int take = Convert.ToInt32(queryString["$top"]);   //paging query     
            return take != 0 ? new { Items = data.Skip(skip).Take(take).ToList(), Count = data.Count() } : new { Items = data, Count = data.Count() }; 
        } 
        } 
 
 
Regards, 
Pavithra S. 


Loader.
Up arrow icon