多列的 Dojo 数据网格过滤器
Posted
技术标签:
【中文标题】多列的 Dojo 数据网格过滤器【英文标题】:Dojo data grid filter for multiple columns 【发布时间】:2014-10-06 07:09:31 【问题描述】:我想根据or
条件过滤数据网格中的所有列。
对于单个列(名称)过滤器,我尝试了下面的函数并且它工作正常。
grid.filter( name: "*" + value + "*" );
现在我想将此过滤器用于网格上的多个列,我尝试了下面的代码,但它不起作用:
grid.filter(name:"*" + value + "*" || solution:"*" + value + "*");
请帮助我为网格上的多列过滤器提供合适的代码。我正在使用 Dojo 1.8.1。
【问题讨论】:
【参考方案1】:为过滤目的创建隐藏列,并放入要过滤的连接数据。
如果您的数据存储区数据是:
data=[
name: "smartphone", solution: "use iPhone instead iPod",
name: "tablet", solution: "use iPad instead iPod",
name: "iPad", solution: "use it"
]
添加用于过滤的列与其他列的连接数据:
data=[
name: "smartphone", solution: "use iPhone instead iPod", forFiltering: "smartphone use iPhone instead iPod",
name: "tablet", solution: "use iPad instead iPod", forFiltering: "tablet use iPad instead iPod",
name: "iPad", solution: "use it", forFiltering: "iPad use it"
]
然后对该列进行过滤:
grid.filter(forFiltering:"*" + value + "*");
【讨论】:
如果可以,请给出一个编码示例。 @dori-naji 解决方案适用于:'condition1 and condition2',Swpno 要求:'value is in field1 or in field2'【参考方案2】:如果我正确理解您的问题,您可以简单地用逗号分隔过滤器的两个参数。所以而不是grid.filter(name:"*" + value + "*" || solution:"*" + value + "*");
你应该使用grid.filter(name:"*" + value + "*",solution:"*" + value + "*" );
你可以在jsfiddle查看这个工作示例
【讨论】:
以上是关于多列的 Dojo 数据网格过滤器的主要内容,如果未能解决你的问题,请参考以下文章