Skip to content

Commit fea1f73

Browse files
author
Kendo Bot
committed
Sync with Kendo UI Professional
1 parent ab2800a commit fea1f73

File tree

1 file changed

+41
-20
lines changed

1 file changed

+41
-20
lines changed

docs/knowledge-base/grid-multiple-filter-criterion.md

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ How can I create a filter widget with a multiple filter criterion in the Grid?
3232
1. When the `click` event of the **Submit** button is clicked, build the filter query and filter the data source by using the [`flter`](https://docs.telerik.com/kendo-ui/api/javascript/data/datasource#methods-filter) method.
3333

3434
```dojo
35-
<h1>Ship Name column has custom filte UI</h1>
35+
<h1>Ship Name column has custom filter UI</h1>
3636
<div id="example">
3737
<div id="grid"></div>
3838
<script>
@@ -85,13 +85,15 @@ How can I create a filter widget with a multiple filter criterion in the Grid?
8585
8686
function onFilterMenuInit(e){
8787
if(e.field == 'ShipName'){
88-
e.container.html('');
88+
e.container.empty();
89+
e.container.append("<div class='k-filter-menu-container'></div>");
90+
e.container = e.container.find(".k-filter-menu-container")
8991
$('<div id="logic">')
9092
.appendTo(e.container)
9193
.kendoDropDownList({
9294
dataTextField:'name',
9395
dataValueField:'value',
94-
dataSource: [{name:'AND',value:'and'},{name:'OR',value:'or'}],
96+
dataSource: [{name:'OR',value:'or'},{name:'AND',value:'and'}],
9597
9698
})
9799
@@ -110,46 +112,65 @@ How can I create a filter widget with a multiple filter criterion in the Grid?
110112
111113
})
112114
113-
$('<input class="k-textbox" id="value'+i+'">')
115+
$('<input class="k-input k-textbox k-input-solid k-input-md k-rounded-md" id="value'+i+'">')
114116
.appendTo(e.container)
115117
}
116118
117119
118-
var submit = $('<button type="submit" class="k-button k-primary">Filter</button>')
119-
120-
$('<div >')
120+
var submit = $('<button class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary">Filter</button>');
121+
var clear = $('<button class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base">Clear</button>');
122+
123+
var grid = $('#grid').data('kendoGrid');
124+
125+
$('<div class="k-action-buttons">')
121126
.append(submit)
122-
.append('<button type="reset" class="k-button">Clear</button>')
127+
.append(clear)
123128
.appendTo(e.container)
124129
125-
submit.on('click', function(){
126-
var grid = $('#grid').data('kendoGrid');
130+
submit.on('click', function(ev){
131+
ev.preventDefault();
127132
var logic = $('#logic').data('kendoDropDownList').value();
128133
var filterQuery =grid.dataSource.filter();
129134
130135
if(filterQuery){
131136
removeFiltersForField(filterQuery,'ShipName')
132137
}else{
133-
filterQuery= {logic:'and', filters:[]};
138+
filterQuery= {logic:'or', filters:[]};
134139
}
135140
136141
var shipNameFilter = {logic:logic, filters:[]};
137142
138143
for(var i =0; i < 3; i++){
139-
shipNameFilter.filters.push({
140-
field:'ShipName',
141-
operator: $('operator'+i).data('kendoDropDownList').value(),
142-
value: $('value'+i).val()
143-
})
144+
var value = $('#value'+i).val();
145+
146+
if(value) {
147+
shipNameFilter.filters.push({
148+
field:'ShipName',
149+
operator: $('#operator'+i).data('kendoDropDownList').value(),
150+
value: value
151+
})
152+
}
144153
}
145154
146155
filterQuery.filters.push(shipNameFilter)
147-
156+
148157
grid.dataSource.filter(filterQuery);
158+
e.container.parent().data("kendoPopup").close();
159+
});
160+
161+
clear.on("click", function(ev) {
162+
ev.preventDefault();
163+
164+
var filterQuery =grid.dataSource.filter();
149165
150-
151-
})
152-
166+
if(filterQuery){
167+
removeFiltersForField(filterQuery,'ShipName')
168+
}
169+
170+
grid.dataSource.filter(filterQuery);
171+
172+
e.container.parent().data("kendoPopup").close();
173+
});
153174
}}
154175
});
155176

0 commit comments

Comments
 (0)