Index.cshtml
<div id="Grid">
</div>
<script type="text/javascript">
$(function () {
var data = new ej.data.DataManager({
url: '/api/Orders',
adaptor: new ej.data.WebApiAdaptor(),
crossDomain: true
});
var elem;
var gridObj;
var grid = new ej.grids.Grid({
dataSource: data,
allowPaging: true,
allowFiltering: true,
pageSettings: { pageSize: 15 },
columns: [
{ field: 'OrderID', headerText: 'Order ID', textAlign: 'Right', width: 120, isPrimaryKey: true },
{
field: 'EmployeeID', filterBarTemplate: {
create: function(args) {
elem = document.createElement('input');
return elem;
},
write: function (args) {
gridObj = document.getElementsByClassName('e-grid')[0].ej2_instances[0];
var dropdown = new ej.dropdowns.DropDownList({
dataSource: data,
fields: { text: 'EmployeeID', value: 'EmployeeID' }, //it helps to bind the EmployeeID value to the dropdown
change: function (args) {
gridObj.filterByColumn('EmployeeID', 'equal', args.value);
}
});
dropdown.appendTo(args.element);
},
},
width: 140, headerText: 'Employee ID'
},
{ field: 'ShipCountry', headerText: 'Ship Country', width: 140 }
]
});
grid.appendTo('#Grid');
});
</script> |
write: function (args) {
gridObj = document.getElementsByClassName('e-grid')[0].ej2_instances[0];
var dropdown = new ej.dropdowns.DropDownList({
dataSource: data,
fields: { text: 'EmployeeID', value: 'EmployeeID' },
showClearButton : true,
change: function (args) {
if (args.value === null) {
gridObj.clearFiltering();
} else {
gridObj.filterByColumn('EmployeeID', 'equal', args.value);
}
. . . . .
}, |
[OrdersControllers.cs]
. . . . .
if (queryString.Keys.Contains("$inlinecount"))
{ // for grid
return take != 0 ? new { Items = data.Skip(skip).Take(take).ToList(), Count = data.Count() } : new { Items = data, Count = data.Count() };
}
else
{ // for dropdown
return new { Items = data.Select(O => O.EmployeeID).Distinct().ToList(), Count = data.Select(O => O.EmployeeID).Distinct().Count() };
} |
write: function (args) {
.. .
var dropdown = new ej.dropdowns.DropDownList({
dataSource: data,
fields: { text: 'EmployeeID', value: 'EmployeeID' },
showClearButton : true,
change: function (args) {
if (args.value === null) {
gridObj.clearFiltering();
} else {
gridObj.filterByColumn('EmployeeID', 'equal', args.value);
}
}
});
dropdown.appendTo(args.element);
} |