ユーザーがフィルターするオプションを選択できるテンプレートとしてドロップダウンを使用するフィルター可能な列があります。
選択が行われた後にユーザーがフィルター ボタンをクリックしなければならないのではなく、オプションが選択された瞬間にフィルターをかけるにはどうすればよいですか?
次のコードが機能しません。選択が行われた瞬間に、フィルターが適用されずにグリッドが更新され、ドロップダウンの選択がリセットされます。
私のドロップダウンには次のものがあります:
function salesPersonFilter(element)
{
element.kendoDropDownList({
dataSource: [{Id: 0, Name: 'Jimbo Jones'}, {Id: 1, Name: 'Jimmy'}],
dataTextField: 'Name',
dataValueField: 'Name',
optionLabel: 'Select salesperson',
template: '#="<span class=\'filterTrigger\'>"+Name+"</span>" #'
})
}
クリック イベントを filterTrigger クラスにバインドしました。
$('.k-list .filterTrigger').click(function()
{
applyFilters();
})
参照として applyFilters() 関数を含めます。
function applyFilters() // Custom filters...
{
var dupes = {};
var finalFilters = [];
$.each(filterBus, function(i, el) {
if(!dupes[el.field])
{
dupes[el.field] = true;
finalFilters.push(el);
}
});
filterBus = finalFilters ;
grid.dataSource.filter(finalFilters) ;
}