我想根据or
条件过滤数据网格中的所有列。对于单列(名称)过滤器,我尝试了下面的函数,它运行正常。
grid.filter( {name: "*" + value + "*" } );
现在我想对网格上的多个列使用这个过滤器,我尝试了下面的代码,但不起作用:
grid.filter({name:"*" + value + "*"} || {solution:"*" + value + "*"});
请帮助我为网格上的多列过滤器提供合适的代码。我使用的是Dojo 1.8.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 + "*"});
如果我正确理解你的问题,你可以简单地用逗号分隔过滤器的两个参数。因此代替grid.filter({name:"*" + value + "*"} || {solution:"*" + value + "*"});
您应该使用grid.filter({name:"*" + value + "*",solution:"*" + value + "*"} );
您可以在jsfiddle 中查看此工作示例