2014-01-13 68 views
2

我需要从以下JSON自动填充剑道下拉框:过滤JSON数据源与剑道UI

var products= 
[ 
    { 
     id: 1, 
     title: "Item-1", 
     active: true 
    }, 
    { 
     id: 2, 
     title: "Item-2", 
     active: false 
    } 
]; 

所以我用下面的代码来做到这一点,它工作得很好:

$("#productList").kendoDropDownList({ 
    dataSource: products, 
    dataTextField: "title", 
    dataValueField: "id" 
}); 

问题是,我只想看到“活动”为真的项目。

如何通过Kendo实现?

回答

1

Sample Jsfiddle

对于过滤器,只能过滤器上dataSoruce,之所以创建kendo.data.DataSource过滤部分应用滤镜。

滤波器:{fieled: “活跃”,操作者: “当量”,:真}

HTML

<div> 
    <input id="productList" style="width:250px"/> 
</div> 

Javascript

var products= 
[ 
    { 
     id: 1, 
     title: "Item-1", 
     active: true 
    }, 
    { 
     id: 2, 
     title: "Item-2", 
     active: undefined 
    }, 
    { 
     id:3, 
     title:"Item-3", 
     active:false 
    }, 
    { 
     id:3, 
     title:"Item-4", 
     active:undefined 
    } 
]; 
var dataSource=new kendo.data.DataSource({ 
    data:products, 
    filter:{ 
     logic:'or', 
     filters:[ 
      {field:"active",operator:"eq",value:true}, 
      {field:"active",operator:"eq",value:undefined} 
     ]} 
}); 

$("#productList").kendoDropDownList({ 
    dataSource: dataSource, 
    dataTextField: "title", 
    dataValueField: "id" 
}); 
+0

不错的答案,它的工作原理,谢谢!如果我想将条件更改为这一条件:<如果active为true或undefined>,以支持默认值。如何改变这个过滤器? –

+0

@ user1102051,已使用dataSource中的多个筛选器选项进行更新 – Goddard

+0

@ user1102051 http://jsfiddle.net/R778c/4/,最新更新的链接 – Goddard