【问题标题】:Dojo data grid filter for multiple columns多列的 Dojo 数据网格过滤器
【发布时间】:2014-10-06 07:09:31
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案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查看这个工作示例

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      相关资源
      最近更新 更多