SelectionModel:只允许在两个网格

时间:2017-05-19 05:06:57

标签: extjs

为了更好地概览和使用可用的屏幕空间,我希望两个网格彼此相邻,但只有一个工具栏带有按钮。两个网格绑定到不同的ChainedStores,但链接存储的底层源存储是相同的。 ChainedStores有过滤器来创建底层商店中记录的分区 - 左边一半,另一半右边。

单击工具栏中的按钮应对其中任一网格中的选定记录执行操作。

有没有办法告诉selectionModel我想要只选择一个记录,在右侧或左侧网格中,但不是每个都有一个?

您可以在这里尝试:https://fiddle.sencha.com/#view/editor&fiddle/1vs4

1 个答案:

答案 0 :(得分:2)

ExtJS不支持两个不同网格的相同选择模型。您必须通过代码手动处理它。

你可以在每个网格上编写select个事件监听器,在那个事件上你可以取消选择另一个网格的记录。

代表grid1

listeners :{
                 select : function(sel, record, index, eOpts){
                        sel.view.up('panel[name=main]').down('grid[name=grid2]').getSelectionModel().deselectAll();
                 }
           }

代表grid2

listeners :{
                 select : function(sel, record, index, eOpts){
                     sel.view.up('panel[name=main]').down('grid[name=grid1]').getSelectionModel().deselectAll();
                 }
           }

请参阅fiddle