Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery KendoUI网格应用过滤器下拉选项选择_Jquery_Kendo Ui_Datasource_Kendo Grid - Fatal编程技术网

Jquery KendoUI网格应用过滤器下拉选项选择

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

我有一个filterable列,它使用下拉列表作为模板,用户可以在其中选择一个选项进行筛选

如何在选择选项时进行过滤,而不是用户在选择后必须单击过滤按钮

我下面的代码不起作用。进行选择时,网格将在不应用过滤器的情况下刷新,下拉选择将重置

对于我的下拉列表,我有:

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);
      }
    })
  }