Extjs,动态过滤网格

Posted

技术标签:

【中文标题】Extjs,动态过滤网格【英文标题】:Extjs, filtering grid dynamically 【发布时间】:2013-01-30 16:03:02 【问题描述】:

我正在使用 extjs4 进行开发。 如图所示,我有两个网格,我希望当我单击包含 Number 1Grid Panel 1 行时,Grid Panel 2 将仅显示包含 Number 1 的行。

【问题讨论】:

【参考方案1】:

这非常简单;订阅第一个网格的选择事件,并在该处理程序中过滤第二个网格的存储。就是这样。

grid1.on('select', function(grid,record)  
   grid2.store.clearFilter(true); // see http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-method-clearFilter
   grid2.store.filter('Number', record.get('Number');
,this);

【讨论】:

这就是解决办法,但是我还是有问题,当我点击Grid Panel 1那一行contanisNumber 1时,Grid Panel 2会被过滤掉,然后当我点击Grid Panel 1 的行,contanis Number 3, Grid Panel 2 不会显示我想要的,因为它只包含 Number 1 @Aminesrine 查看我的编辑。现在它应该再次做你想做的事了。 谢谢@sra :) 我还有一个问题,我希望在呈现Grid Panel 1 时,它不会显示包含Number 1 的行。它将显示除Number 1 之外的所有内容。 @Aminesrine 我不明白...你能详细说明一下吗? @Aminesrine 好吧,如果我理解正确,那么您也可以应用过滤器。类似于 grid1.store.filterBy(function(record) return record.get('Number') > 0 ); 这应该只显示大于 0 的数字

以上是关于Extjs,动态过滤网格的主要内容,如果未能解决你的问题,请参考以下文章

ExtJs 5 动态网格分页

ExtJs 3:如何根据用户网格存储值动态更新网格单元工具提示?

如何在 extjs 网格中添加动态文本框

extjs 动态存储模型网格列

如何在 extjs4.1 中动态更新网格的摘要类型

ExtJS 4.1 如何动态创建带有网格的窗口