Jquery KendoUI网格应用过滤器下拉选项选择
我有一个filterable列,它使用下拉列表作为模板,用户可以在其中选择一个选项进行筛选 如何在选择选项时进行过滤,而不是用户在选择后必须单击过滤按钮 我下面的代码不起作用。进行选择时,网格将在不应用过滤器的情况下刷新,下拉选择将重置 对于我的下拉列表,我有:Jquery KendoUI网格应用过滤器下拉选项选择,jquery,kendo-ui,datasource,kendo-grid,Jquery,Kendo Ui,Datasource,Kendo Grid,我有一个filterable列,它使用下拉列表作为模板,用户可以在其中选择一个选项进行筛选 如何在选择选项时进行过滤,而不是用户在选择后必须单击过滤按钮 我下面的代码不起作用。进行选择时,网格将在不应用过滤器的情况下刷新,下拉选择将重置 对于我的下拉列表,我有: function salesPersonFilter(element) { element.kendoDropDownList({ dataSource: [{Id: 0, Name: 'Jimbo Jones'}, {Id
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>" #'
})
}
我包括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) ;
}
我设法这样做了,但肯定有更好的办法吗
function salesPersonFilter(element)
{
element.kendoDropDownList({
dataSource: [{Id: 60, Name: 'Sam'}, {Id: 5, Name: 'Jimmy'}],
dataTextField: 'Name',
dataValueField: 'Id',
optionLabel: 'Select salesperson',
template: '#="<span class=\'filterTrigger\' data-value=\'"+Id+"\'>"+Name+"</span>" #',
select: function(e)
{// Dirty, is there a better way?
html = e.item[0].outerHTML;
html = html.substring(html.indexOf('data-value="')+12);
traderId = html.substring(0, html.indexOf('"'));
filterBus.push({
field: 'traderId',
operator: 'eq',
value: traderId
})
$('.k-animation-container').hide();
grid.dataSource.filter(filterBus);
}
})
}
函数salersonfilter(元素)
{
element.kendoDropDownList({
数据源:[{Id:60,名称:'Sam'},{Id:5,名称:'Jimmy'}],
dataTextField:'名称',
dataValueField:'Id',
选项标签:“选择销售人员”,
模板:'#=''名称+''#',
选择:功能(e)
{//肮脏,有更好的办法吗?
html=e.item[0].outerHTML;
html=html.substring(html.indexOf('data-value=“”)+12);
traderId=html.substring(0,html.indexOf(“”);
推滤器({
字段:“traderId”,
运算符:“eq”,
价值:traderId
})
$('.k-animation-container').hide();
grid.dataSource.filter(filterBus);
}
})
}
function salesPersonFilter(element)
{
element.kendoDropDownList({
dataSource: [{Id: 60, Name: 'Sam'}, {Id: 5, Name: 'Jimmy'}],
dataTextField: 'Name',
dataValueField: 'Id',
optionLabel: 'Select salesperson',
template: '#="<span class=\'filterTrigger\' data-value=\'"+Id+"\'>"+Name+"</span>" #',
select: function(e)
{// Dirty, is there a better way?
html = e.item[0].outerHTML;
html = html.substring(html.indexOf('data-value="')+12);
traderId = html.substring(0, html.indexOf('"'));
filterBus.push({
field: 'traderId',
operator: 'eq',
value: traderId
})
$('.k-animation-container').hide();
grid.dataSource.filter(filterBus);
}
})
}