ExtJS:: 如何过滤网格中的行,但不在存储中

Posted

技术标签:

【中文标题】ExtJS:: 如何过滤网格中的行,但不在存储中【英文标题】:ExtJS:: How to filter rows in grid, but not in store 【发布时间】:2012-04-06 08:57:49 【问题描述】:

我有两个网格,它们都有一个商店。我需要在第一个商店显示所有内容,并在第二个显示该商店的特殊数据。

示例:第一个存储显示每条记录,第二个存储显示类型 = 12 的记录。如何在网格中进行过滤,而不是在存储中。我需要两个不同的网格,而不是一个带有过滤功能的网格。

如果我将按商店过滤第二个网格中的记录,他们将首先隐藏。我会同时看到它,我需要同时看到它们中的不同数据。而且我只需要一家商店。

【问题讨论】:

【参考方案1】:

一个好方法是在第二个网格中覆盖GridView对象的getRowClass()方法:

    var secondGrid = new Ext.grid.GridPanel(
       //..
       viewConfig: 
            getRowClass: function(record, index) 
                if (record.get('type') != '12') 
                    return 'display-false';
                 
            
        
    );

你还应该定义一个 CSS 类:

.display-false  display: none 

试试这个解决方案!

【讨论】:

+1 这太棒了!此外,如果项目要求不同,您可以应用其他样式,例如深灰色背景/字体,例如“禁用”外观。

以上是关于ExtJS:: 如何过滤网格中的行,但不在存储中的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS:过滤网格面板,但不是商店?

extjs 动态存储模型网格列

可编辑的网格 ExtJS,如何在网格上编辑行后更新数据库中的行

如何使用过滤数据保留 ExtJS 网格中的选择?

如何根据严重性更改数据网格中的行颜色?

如何在每个组 ExtJS 4 中过滤分组网格