多列数据网格过滤器

时间:2014-10-06 07:09:32

标签: dojo dojox.grid.datagrid dojox.grid

我想根据or条件过滤数据网格中的所有列。 对于单列(名称)过滤器,我尝试了以下功能,它正常工作。

grid.filter( {name: "*" + value + "*" } );

现在我想对网格上的多个列使用此过滤器,我尝试了下面的代码,但这不起作用:

grid.filter({name:"*" + value + "*"} || {solution:"*" + value + "*"});

请帮助我为网格上的多列过滤器提供合适的代码。我正在使用Dojo 1.8.1。

2 个答案:

答案 0 :(得分:0)

创建隐藏列以进行过滤,并输入您想要过滤的连续数据。

如果您的数据存储数据是:

data=[
{ name: "smartphone", solution: "use iPhone instead iPod"},
{ name: "tablet",     solution: "use iPad instead iPod"},
{ name: "iPad",       solution: "use it"}
]

使用其他列的连接数据添加forFiltering列:

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 + "*"});

答案 1 :(得分:0)

如果我理解你的问题,你可以简单地用逗号分隔过滤器的两个参数。而不是grid.filter({name:"*" + value + "*"} || {solution:"*" + value + "*"});

你应该使用grid.filter({name:"*" + value + "*",solution:"*" + value + "*"} );

您可以在jsfiddle

中查看此工作示例