@{
var filteruiTemplate = new
{
ui = new
{
create = "create",
write = "write",
read = "read"
}
};
}
@Html.EJS().Grid("ReportSubscriptions").DataSource((IEnumerable<object>)ViewBag.DataSource).ActionBegin("onActionBegin") AllowFiltering(true).Columns(col =>
{
col.Field("OrderID").Width("120").IsPrimaryKey(true).Add();
col.Field("OrderDate").HeaderText("OrderDate").Format("yMd").Filter(filteruiTemplate).Width("120").Add();
}).FilterSettings(filter => { filter.Type(Syncfusion.EJ2.Grids.FilterType.Menu); }).
Render()
<script>
var startDate;
var endDate;
var customFilter;
function create(args) {
elem = document.createElement('input');
args.target.appendChild(elem);
var isFiltered = args.target.classList.contains("e-filtered");
dateTimePickerObj = new ej.calendars.DateRangePicker({
floatLabelType: 'Never',
change: function (args) {
if (args.value) {
var datevalue = args.value;
var grid = document.getElementsByClassName('e-grid')[0].ej2_instances[0];
grid.filterByColumn("OrderDate", "greaterthanorequal", datevalue[0]);
}
}
});
dateTimePickerObj.appendTo(elem);
}
function write(args) {
}
function read() {
}
</script> |
function onActionBegin(args) {
if (args.requestType === "filtering" && args.currentFilteringColumn === "OrderDate") {
var grid = document.getElementsByClassName('e-grid')[0].ej2_instances[0];
var daterange = document.getElementsByClassName('e-daterangepicker')[0].ej2_instances[0];
// End date value is added as additional filter value with ‘lessthan’ filter operator
args.columns.push({
actualFilterValue: {},
actualOperator: {},
field: "OrderDate",
ignoreAccent: false,
isForeignKey: false,
matchCase: false,
operator: "lessthan",
predicate: "and",
uid: grid.getColumnByField(args.currentFilteringColumn).uid,
value: daterange.value[1]
});
}
}
|
function create(args) {
args.getOptrInstance.dropOptr.element.parentElement.parentElement.style.display = "none"; // hide the filter operators element
elem = document.createElement('input');
args.target.appendChild(elem);
// check whether the column is filtered or not
var isFiltered = event.target.classList.contains("e-filtered");
dateTimePickerObj = new ej.calendars.DateRangePicker({
floatLabelType: 'Never',
// bind the filtered date value
startDate: isFiltered ? datevalue[0] : null,
endDate: isFiltered ? datevalue[1] : null,
});
dateTimePickerObj.appendTo(elem);
}
|
function dataBound(args) {
this.on("filter-menu-close", function (args) {
if (args.target && args.target.parentElement.classList.contains('e-footer')) {
// prevent the filter menu close action when click the footer buttons in dateRangePicker
args.cancel = true
}
})
}
|
function read(args) {
if (args.element.ej2_instances[0].value != null) {
datevalue = args.element.ej2_instances[0].value;
var grid = document.getElementsByClassName('e-grid')[0].ej2_instances[0];
// clear the previous filtered value on orderDate column
grid.removeFilteredColsByField("OrderDate");
setTimeout(() => {
// filter the column
grid.filterByColumn("OrderDate", "greaterthanorequal", datevalue[0]);
})
}
}
|
function actionComplete(args) {
if (args.requestType === 'filtering') {
var grid = document.getElementsByClassName('e-grid')[0].ej2_instances[0];
var filters = "";
if (grid.filterSettings.columns) {
for (var i = 0; i < grid.filterSettings.columns.length; i++) {
var column = grid.filterSettings.columns[i];
filters += column.field + " " + column.operator + " " + column.value + ", ";
}
}
console.log(filters);
// here you can append the filters detail in the DOM where you need
}
}
|
function create(args) {
args.getOptrInstance.dropOptr.element.parentElement.parentElement.style.display = "none"; // hide the filter operators element
elem = document.createElement('input');
args.target.appendChild(elem);
// check whether the column is filtered or not
var isFiltered = event.target.classList.contains("e-filtered");
dateTimePickerObj = new ej.calendars.DateRangePicker({
floatLabelType: 'Never',
// bind the filtered date value
startDate: isFiltered ? datevalue[0] : null,
endDate: isFiltered ? datevalue[1] : null,
});
dateTimePickerObj.appendTo(elem);
} |
function create(args) {
args.getOptrInstance.dropOptr.element.parentElement.parentElement.style.display = "none"; // hide the filter operators element
args.dialogObj.ftrTemplateContent.children[1].style.display = "none" //to hide the clear button
. . .
}); dateTimePickerObj.appendTo(elem);
} |