dateRangeInstance: null,
filterdate: {
ui: {
create: function (args) {
var _this = this;
vm.dateRangeInstance = new DateRangePicker({
placeholder: 'Select a Range',
change: function (e) {
console.log(e.value);
console.log(args.column.field);
if (e.value) {
vm.$refs.pgridtable.filterByColumn(args.column.field, "greaterthanorequal",
e.value[0], "and", true);
vm.$refs.pgridtable.filterByColumn(args.column.field, "lessthan",
e.value[1], "and", true);
}
else {
vm.$refs.pgridtable.grid.filterSettings.columns = [];
vm.$refs.pgridtable.grid.removeFilteredColsByField(args.target.id);
}
},
});
let flValInput = createElement('input', { className: 'flm-input' });
args.target.appendChild(flValInput);
vm.dateRangeInstance.appendTo(flValInput);
},
write: function (args) {
console.log("filterval:" + args.filteredValue);
},
read: function (args) {
console.log(vm.dateRangeInstance.startVal);
}
}
},
|
return {
data: orderData,
filterSettings: { type: "Menu" },
filterdate: {
ui: {
create: function(args) {
args.getOptrInstance.dropOptr.element.parentElement.parentElement.style.display ='none';
. . . |
|
export default {
name: "App",
data() {
let dateRangeInstance = null;
let dateValue = '';
let vm = this;
return {
data: orderData,
filterSettings: { type: "Menu" },
filterdate: {
ui: {
create: function(args) {
args.getOptrInstance.dropOptr.element.parentElement.parentElement.style.display ='none';
// here we are checking the column is filtered or not
var isFiltered = event.target.classList.contains('e-filtered');
vm.dateRangeInstance = new DateRangePicker({
placeholder: "Select a Range",
// based on that we are setting the filtered value
value: isFiltered ? vm.dateValue: null,
change: function(e) {
vm.dateValue = e.value;
console.log(e.value);
console.log(args.column.field);
if (e.value) {
vm.$refs.pgridtable.filterByColumn(
args.column.field,
"greaterthanorequal",
e.value[0],
"and",
true
. . .
read: function(args) {
console.log(vm.dateRangeInstance.startVal);
}
}
}
};
}, |
|
<template>
<div id="app">
<ejs-grid
id="Grid"
:dataSource="data"
:allowPaging="true"
:allowFiltering="true"
:filterSettings="filterSettings"
ref="pgridtable"
:actionBegin="actionBegin"
>
<e-columns>
. . .
<e-column
field="OrderDate"
headerText="Order Date"
textAlign="Right"
format="yMd"
type="date"
width="120"
:filter="filterdate"
></e-column>
. . .
</e-columns>
</ejs-grid>
</div>
</template>
<script>
. . .
export default {
name: "App",
data() {
let dateRangeInstance = null;
let dateValue = "";
let customFilter = false;
let vm = this;
return {
data: orderData,
filterSettings: { type: "Menu" },
filterdate: {
ui: {
create: function(args) {
args.getOptrInstance.dropOptr.element.parentElement.parentElement.style.display =
"none";
var isFiltered = event.target.classList.contains("e-filtered");
vm.dateRangeInstance = new DateRangePicker({
placeholder: "Select a Range",
value: isFiltered ? vm.dateValue : null,
change: function(e) {
if (e.value) {
vm.dateValue = e.value;
vm.$refs.pgridtable.filterByColumn(
"OrderDate",
"greaterthanorequal",
vm.dateValue[0]
);
} else {
vm.$refs.pgridtable.filterSettings.columns = [];
vm.$refs.pgridtable.removeFilteredColsByField(args.target.id);
}
}
});
let flValInput = createElement("input", { className: "flm-input" });
args.target.appendChild(flValInput);
vm.dateRangeInstance.appendTo(flValInput);
},
. . .
}
}
}
};
},
methods: {
actionBegin: function(args) {
// Check for filter column
if (
args.requestType === "filtering" &&
args.currentFilteringColumn === "OrderDate"
) {
// 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: this.$refs.pgridtable.getColumnByField(args.currentFilteringColumn).uid,
value: this.dateValue[1]
});
}
}
},
provide: {
grid: [Page, Filter]
}
};
</script> |
|
import { DataUtil } from "@syncfusion/ej2-data";
export const orderData: Object[] = DataUtil.parse.parseJson(
stringData,
(field: any, value: any) => {
let dupValue: any = value;
if ( |