`

[组件用法]Ext.state.Manager对组件状态进行管理

    博客分类:
  • Ext
阅读更多
Ext.state.Manager存在的意义:简单说就是在客户端存取数据,譬如说用户打开一个Window之后对其大小进行了调整,他不想每次打开都要重新调整窗口大小,这时你就可以使用Ext.state.Manager记住他所设定的窗口大小,这样他即使关闭浏览器再打开打那个Window还会是你所保存的大小。

默认情况下所有组件执行构造函数时都会访问这个类。如果你想要让它记住组件的状态必须在程序初始化的时候设置一个Provider(一个可以对数据进行存取的底层实现),Ext提供的一个实现就是Ext.state.CookieProvider,这个类通过操作浏览器的cookie实现数据的存取,通常你需要在程序起始的时候对它进行设置。例如:
Ext.state.Manager.setProvider(
 new Ext.state.CookieProvider({
  expires: new Date(new Date().getTime()+(1000*60*60*24*365)), //1年保存期,默认是7天
 }));


在组件中使用状态管理:
stateful:Boolean 
这个属性只要不是false,这个组件就回在构造时访问Ext.state.Manager
stateId:String
这个属性是组件状态化的标实,没设置的话会被设置为组件的id,如果组件id也没手工设置,它会被设置为null(如果想对组件进行状态管理,这一项不能为null)
stateEvents:Array
事件名的数组,其中任何事件触发时Ext.state.Manager都会重新记录组件的状态
getState():Object
此方法用于保存组件状态,当stateEvents中的事件触发时会被调用,默认情况下是一个空方法;你需要改写此方法返回一个带有需要保存信息的直接量对象,这个对象会被Ext.state.Manager记录下来并且做为唯一参数传递给applyState方法。
applyState(Object state):void
如果stateful不为false并且Ext.state.Manager保存了这个对象的状态,这个方法会在组件构造时被隐式调用(不用你自己写代码,Ext会把当前组件的state对象做为参数传递到这个方法并进行调用),默认情况下这个函数就是把state的所有属性复制到这个对象上。

beforestaterestore、beforestatesave、staterestore、statesave四个事件可用来对状态保存和读取进行监听

简而言之,你至少需要为需要状态管理的组件配置以下属性:
属性:id或stateId stateEvents
方法:getState

这里有个例子可以借鉴:http://www.extjs.com/learn/Manual:Core:State_(Chinese)
分享到:
评论

相关推荐

    EXT.form组件

    5. `field`:`Ext.form.Field`是所有表单字段的基础类,提供了一般性的属性和方法,如验证和状态管理。 6. `fieldset`:`Ext.form.FieldSet`是用于组织和分组表单字段的容器,通常包含一个标题和可选的边框。 7. `...

    Ext组件描述,各个组件含义

    - **功能描述**:Component 是所有 Ext 组件的基础类,它定义了所有 Ext 组件都共有的基本属性和方法。 - **主要用途**:作为所有其他组件的基类。 **1.5 Container (Ext.Container)** - **xtype**: `container` -...

    Ext.data.Store的基本用法

    `Ext.data.Store`是ExtJS框架中用于管理数据的核心组件之一。它主要负责数据的存储、加载、更新等操作,并且提供了多种方法来方便地处理这些数据。本文将详细介绍`Ext.data.Store`的基本用法。 #### 二、创建Ext....

    extjs-Ext.ux.form.LovCombo下拉框

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    Ext.Store的获取方法

    总结来说,在Ext.js中,获取`Ext.Store`应使用`Ext.getStore`方法,而不是`Ext.getCmp`,因为Store是通过`storeId`在内存中注册和管理的,而不是作为页面上的一个可视组件。同时,Store的设计方式有助于数据的安全性...

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    动态加载本地数据到`Ext.Panel`通常涉及到异步请求,使用`Ajax`或`Store`的`load`方法,通过URL获取JSON或XML格式的数据,并将其渲染到面板内。 例如: ```javascript var panel = Ext.create('Ext.Panel', { ...

    在.NET中使用Ext.Direct的Router

    Ext.Direct是一种由Sencha公司开发的技术,用于在客户端(通常是JavaScript)和服务器端(如.NET应用程序)之间进行高效、直接的数据交互。它提供了一种结构化的API调用方式,简化了前端与后端的通信,使得开发人员...

    Ext.ux.SwfUploadPanel.js

    在实际使用`Ext.ux.SwfUploadPanel.js`时,你需要在ExtJS应用程序中引入这个文件,并配置相关参数,例如服务器端处理脚本地址、允许的文件类型、最大文件大小等。然后,你可以像创建其他ExtJS组件一样,实例化...

    Ext.js教程和Ext.js API

    5. **数据绑定**:介绍如何使用Store、Model和Proxy进行数据管理与远程数据交互。 **Ext.js 中文教程**: 教程是学习新工具的最佳途径,中文教程为初学者提供了友好的学习资源。可能包含以下章节: 1. **入门**:...

    一个简单的Ext.Window中插入图片的例子

    在Ext JS这个强大的JavaScript框架中,`Ext.Window`是一个常用组件,用于创建浮动、可弹出的窗口。在Web应用程序中,我们...希望这个指南对你在使用`Ext.Window`插入图片时有所帮助,祝你在IT行业中取得更大的成就!

    删除shell360ext.dll的最佳解决方法

    1. 停止相关进程:在任务管理器中结束所有可能使用shell360ext.dll的进程。按Ctrl+Shift+Esc打开任务管理器,查看"进程"或"详细信息"标签,查找并结束相关进程。 2. 备份重要数据:在进行任何系统修改之前,建议备份...

    EXT dojochina文本框示例Ext.form.TextField.rar

    总的来说,`Ext.form.TextField`是EXT框架中不可或缺的一部分,它提供了一种简单且灵活的方式来创建和管理用户输入,是构建Web表单和交互界面的关键组件。通过研究这个示例,开发者可以更好地掌握EXT框架的使用,...

    Ext.js 6 示例学习

    "Ext.JS6ByExample.pdf"很可能是一本基于实例的教学手册,通常这样的书籍会通过具体的代码示例来解释Ext.js 6的各种功能和组件的用法。读者可以通过这些例子了解如何创建组件,如表格、表单、树形视图、图表等,以及...

    Ext.tree.TreeLoader附带封装的json类

    `Ext.tree.TreeLoader`是Ext JS库中的一个组件,它负责加载和解析树形结构的数据,而JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,非常适合于在服务器和客户端之间传输数据。我们将通过实例...

    Ext.Array例子

    下面我们将详细探讨`Ext.Array`的一些关键用法,并结合EXTJS的对话框(Dialog)组件进行讨论。 首先,我们来看`Ext.Array`的一些基本操作: 1. **包含检查**:`contains()` 方法用于检查数组是否包含特定的元素。...

    fp40ext.dll无法加载安装程序库

    在本例中,"fp40ext.dll" 可能是某个应用程序,如Adobe Flash Player的一个组件,因为历史上Flash Player曾使用fp开头的DLL文件。 问题的核心在于"无法加载安装程序库",这可能是由多种原因造成的: 1. **文件缺失...

    Ext.ux.Upload.Dialog使用

    下面我们将深入探讨这个组件的使用方法、功能以及相关的技术知识。 首先,`Ext.ux`是Ext JS的一个扩展库,其中包含了社区开发的多种插件和组件,`Upload.Dialog`就是其中之一。这个组件提供了与用户交互的图形界面...

    ext.jsb工具插件

    EXT是一个基于JavaScript的用户界面库,它提供了丰富的组件和布局管理功能,广泛应用于构建复杂的Web应用程序。EXT.jsb插件则针对EXT库的版本差异,提供了对应的版本支持,包括EXT.jsb(适用于v2和v3.0)、EXT.jsb2...

    Ext.window的一个扩展组件SuperWin.js

    Ext.window的一个扩展组件SuperWin.js.可灵活自主随意定位,和显示模式;

    Ext.ux.UploadDialog.zip

    EXTjs是一个广泛使用的JavaScript库,特别适用于构建富客户端应用程序。其强大的组件模型使得开发者能够创建...记得在实际使用时,根据项目的具体需求对UploadDialog进行适当的定制和调整,以满足用户需求和优化性能。

Global site tag (gtag.js) - Google Analytics