|
public ActionResult DataSource(Syncfusion.JavaScript.DataManager dm)
{
IEnumerable Data = GridData;
Syncfusion.JavaScript.DataSources.DataOperations operation = new Syncfusion.JavaScript.DataSources.DataOperations();
if (dm.Sorted != null && dm.Sorted.Count > 0) //Sorting
{
Data = operation.PerformSorting(Data, dm.Sorted);
}
if (dm.Where != null && dm.Where.Count > 0) //Filtering
{
Data = operation.PerformWhereFilter(Data, dm.Where, dm.Where[0].Operator);
}
int count = Data.AsQueryable().Count();
if (dm.Skip != 0)
{
Data = operation.PerformSkip(Data, dm.Skip);
}
if (dm.Take != 0)
{
Data = operation.PerformTake(Data, dm.Take);
}
return Json(new { result = Data, count = count }, JsonRequestBehavior.AllowGet);
} |
|
<button id="btn" onclick="myFunc()">Search button</button>
<div id="divStateGrid" style="visibility:hidden">
@(Html.EJ().Grid<object>("Grid")
.AllowPaging()
.AllowSorting()
.AllowFiltering()
.FilterSettings(filter => { filter.FilterType(FilterType.Excel); })
.Columns(col =>
{
...
})
)
</div>
<script>
function myFunc() {
$("#divStateGrid").css('visibility', 'visible');
var dataManagerObj = ej.DataManager({ url: "/Home/DataSource", adaptor: "UrlAdaptor" });
var grid = $("#Grid").ejGrid({query:new ej.Query().search("Load")}); //passing search key word using ej.Query
var grid = $("#Grid").ejGrid("instance");
grid.dataSource(dataManagerObj); //binding the datasource for the grid using dataSource method.
}
</script> [HomeController.cs]
public ActionResult DataSource(Syncfusion.JavaScript.DataManager dm)
{
if (dm.Search.Count > 0 && dm.Search[0].Key =="Load") //grid will bind the data only if the key word contains “Load”
{
IEnumerable Data = GridData;
Syncfusion.JavaScript.DataSources.DataOperations operation = new Syncfusion.JavaScript.DataSources.DataOperations();
if (dm.Sorted != null && dm.Sorted.Count > 0) //Sorting
{
Data = operation.PerformSorting(Data, dm.Sorted);
}
if (dm.Where != null && dm.Where.Count > 0) //Filtering
{
Data = operation.PerformWhereFilter(Data, dm.Where, dm.Where[0].Operator);
}
int count = Data.AsQueryable().Count();
if (dm.Skip != 0)
{
Data = operation.PerformSkip(Data, dm.Skip);
}
if (dm.Take != 0)
{
Data = operation.PerformTake(Data, dm.Take);
}
return Json(new { result = Data, count = count }, JsonRequestBehavior.AllowGet);
}
else
{
return View();
}
} |