extjs保存组件视图状态,然后从父组件中删除它

时间:2014-11-19 09:14:44

标签: view state extjs5

让我解释一下我的情景。我正在使用ExtJS5。我有一个视图组件(让我们名称是viewOne)包含两个组合框,按钮搜索和一些操作按钮,点击搜索按钮,网格被填充。此viewOne位于父视图组件(viewParent)中。我需要在选择一些网格行时加载第二个视图(viewTwo),然后单击某个操作按钮,在parentView中加载一个新视图(viewTwo)。当我从viewTwo返回viewOne时,我需要旧的组合框值来重新执行搜索。

目前,我将组合框的值存储在商店中,然后在后视图渲染和调用搜索时进行设置。我们已经放弃了此实现的卡布局。

我想知道如何通过Ext.state来完成,我找不到任何关于我问题的解决方案的例子。还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

国家似乎是合理的。首先,您必须将StateProvider(通过调用Ext.state.Manager.setProvider)设置为扩展Ext.state.Provider的类的实例。 然后国家应该为你工作。只有您必须记住的是将stateful属性设置为true并设置组件的stateId

通常您不需要自己保存状态。所有内置有状态组件都定义了状态事件。当发生此类状态事件时(例如,面板上的expand),则会自动保存状态。您可以通过在initComponent中调用addStateEvents来自定义状态事件。

要提供自定义组件状态,您应该覆盖applyStategetState方法。当您将其与addStateEvents结合使用时,您将拥有所需的一切。

示例:http://jsfiddle.net/48jw81da/16/