我有两个智能表,它们都有一个个性化按钮,用户可以在其中添加过滤器。 现在我需要连接表,即应用于一个表的筛选器也应用于另一个表。
我已经实现了:如果用户将过滤器应用于一个表,我可以在evt.getParameter("bindingParams").filters
的帮助下使用beforeRebindTable 事件查看它。之后,我可以将应用于表的变体复制到另一个表
var oVariantWithFilters = this.getView().byId("SmartTableOne")._oCurrentVariant
this.getView().byId("SmartTableTwo")._oCurrentVariant = oVariantWithFilters
因此,两者都被正确过滤。
但是:如果用户打开其他智能表个性化设置(在本例中为 SmartTableTwo 之一(,他将看不到应用的筛选器,也无法在位置删除它。
因此,问题是关于如何在另一个表的个性化对话框中添加筛选器信息。(复制完整的_oPersController
是不可能的,因为这不仅可以控制过滤器......还可以显示哪些列......
我希望这是可以理解的。
此致敬意 克里斯蒂安·
比预期的要容易...
var oVariantWithFilters = this.getView().byId("SmartTableOne").fetchVariant()
this.getView().byId("SmartTableTwo").applyVariant(oVariantWithFilters) = oVariantWithFilters
通过使用不复制变体的 applyVariant 函数...还会创建个性化对话框。所以这解决了我的问题。:)