@(Html.EJ().Grid<object>("FlatGrid")
.Datasource(ds => ds.URL("/Home/DataSource").Adaptor("UrlAdaptor"))
.AllowFiltering()
.AllowSorting() /*Sorting Enabled*/
.AllowPaging() /*Paging Enabled*/
.PageSettings(eve=>eve.PageSize(5))
.FilterSettings(eve=>eve.FilterType(FilterType.Excel))
.Columns(col =>
{
col.Field("OrderID").HeaderText("Order ID").IsPrimaryKey(true).TextAlign(TextAlign.Right).Width(75).Add();
..
}))
public ActionResult DataSource(Syncfusion.JavaScript.DataManager dm)
{
IEnumerable Data = OrderRepository.GetAllRecords();
Syncfusion.JavaScript.DataSources.DataOperations operation = new Syncfusion.JavaScript.DataSources.DataOperations();
..
int count = Data.AsQueryable().Count();
if (dm.Skip != 0)
{
Data = operation.PerformSkip(Data, dm.Skip); //paging
}
if (dm.Take != 0)
{
Data = operation.PerformTake(Data, dm.Take); //paging
}
return Json(new { result = Data, count = count }, JsonRequestBehavior.AllowGet);
}
|
[index.cshtml]
@Html.EJS().Grid("DataOperations").DataSource(dataManager => { dataManager.Url("/Home/UrlDatasource").Adaptor("UrlAdaptor"); }).Columns(col =>
{
col.Field("OrderID").HeaderText("Order ID").IsPrimaryKey(true).Width("120").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add();
col.Field("CustomerID").HeaderText("Customer Name").Width("150").Add();
col.Field("Freight").HeaderText("Freight").Width("120").TextAlign(Syncfusion.EJ2.Grids.TextAlign.Right).Add();
col.Field("ShipCountry").HeaderText("Ship Country").Width("150").Add();
}).AllowPaging().Render()
[HomeController.cs]
public ActionResult UrlDatasource(DataManagerRequest dm) // get the action queries using DataManagerRequest class
{
IEnumerable DataSource = OrdersDetails.GetAllRecords().ToList();
DataOperations operation = new DataOperations();
if (dm.Search != null && dm.Search.Count > 0)
{
DataSource = operation.PerformSearching(DataSource, dm.Search); //Search
}
if (dm.Sorted != null && dm.Sorted.Count > 0) //Sorting
{
DataSource = operation.PerformSorting(DataSource, dm.Sorted);
}
if (dm.Where != null && dm.Where.Count > 0) //Filtering
{
DataSource = operation.PerformFiltering(DataSource, dm.Where, dm.Where[0].Operator);
}
int count = DataSource.Cast<OrdersDetails>().Count();
if (dm.Skip != 0)
{
DataSource = operation.PerformSkip(DataSource, dm.Skip); //Paging
}
if (dm.Take != 0)
{
DataSource = operation.PerformTake(DataSource, dm.Take); //Paging
}
return dm.RequiresCounts ? Json(new { result = DataSource, count = count }) : Json(DataSource); // return the data in object format with result and count format
} |