if you call
grid.dataSource.filter({})
, dataSource, , . , dataSource - .
, .
kendo.ui.Grid.prototype.clearFilters = function(args){
var ignore = [];
if(typeof args === 'object'){
if(args.hasOwnProperty('ignore')){
if(args.ignore.length > 0){
ignore = args.ignore;
}
}
}
var fields = [], filter = this.dataSource.filter(), col = this.columns;
if( $.isEmptyObject(filter) || $.isEmptyObject(filter)) return;
for(var i = 0, l = col.length; i < l; i++){
if(col[i].hasOwnProperty('field')){
if(ignore.indexOf(col[i].field) === -1){
fields.push(col[i].field)
}
}
}
if($.isEmptyObject(fields)) return;
var newFilter = this._eraseFiltersField(fields, filter)
this.dataSource.filter(newFilter);
}
. , :
kendo.ui.Grid.prototype._eraseFiltersField = function(fields, filter){
for (var i = 0; i < filter.filters.length; i++) {
if(filter.filters[i].hasOwnProperty('filters')){
filter.filters[i] = this._eraseFiltersField(fields, filter.filters[i]);
if($.isEmptyObject(filter.filters[i])){
filter.filters.splice(i, 1);
i--;
continue;
}
}
if(filter.filters[i].hasOwnProperty('field')){
if( fields.indexOf(filter.filters[i].field) > -1){
filter.filters.splice(i, 1);
i--;
continue;
}
}
}
if(filter.filters.length === 0){
filter = {};
}
return filter;
}
:
$('#my-grid').data('kendoGrid').clearFilters({
ignore: ['Field1', 'Field2']
})
, dataSource :
{
logic: "and"
filters: [
{
logic: "or"
filters:[
{
field: "Field1"
operator: "contains"
value: "val1"
},
{
field: "Field1"
operator: "contains"
value: "val2"
}
],
},
{
field: "Field3"
operator: "contains"
value: "val3"
}
],
}
'filters'.
:
("Field3" === "val3" && ("Field1" === "val1" || "Field1" === "val2" ) )
.
, -.