|
@(Html.EJ().Grid<object>("FlatGrid")
.Datasource((IEnumerable<object>)ViewBag.datasource)
.AllowFiltering(true)
.AllowPaging()
.FilterSettings(filter => filter.FilterType(FilterType.Excel)
.FilteredColumns(filcol =>
{
filcol.Field("OrderID").Operator(FilterOperatorType.Equals).Value("10248").Predicate("or").Add();
filcol.Field("OrderID").Operator(FilterOperatorType.Equals).Value("10249").Predicate("or").Add();
}
))
.Columns(col =>
{
----
}))
|
That works if the statement is put there, but a decision first needs to be made whether to filter or not so I think I need to apply the filter somewhere else. I though in the DataBound event, but that doesn't work. The controller can be called with a filter variable or not.
function GridBound(args) {
var val = '@ViewBag.PvDCFilter.ToString()';
var grid = $("#OneCloudGrid").ejGrid("instance");
if (val == "NoFilter")
grid.clearFiltering();
else {
grid.filterColumn([{ field: "OCPvDC", operator: "equal", value: val }, { field: "Status", operator: "equal", predicate: "or", value: "Completed" }, { field: "Status", operator: "equal", predicate: "or", value: "Review" }]);
}
}
|
<button type="button" onClick="refreshData()">FilterColumn</button>
<div style="padding-top:10px">
@(Html.EJ().Grid<object>("FlatGrid")
.Datasource((IEnumerable<object>)ViewBag.datasource)
.AllowFiltering(true)
.AllowPaging()
.FilterSettings(filter => filter.FilterType(FilterType.Excel))
.Columns(col =>
{
---
}))
</div>
<script type="text/javascript">
function refreshData(args) {
var gridObj = $("#FlatGrid").ejGrid('instance');
gridObj.model.filterSettings.filteredColumns = [{ field: "OrderID", operator: "equal", predicate: "or", value: "10248" }, { field: "OrderID", operator: "equal", predicate: "or", value: "10249" }];
gridObj.refreshContent();
}
</script>
|
Worked great! Thanks