`
yahaitt
  • 浏览: 756067 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

ExtJs中关于grid和store的应用分析(二)

阅读更多

第二部分:Store的核心阐释

Store即数据存储器,主要用于提供给GridPanel,EditorGridPanel等关联数据用的。
Store由Proxy(数据源)和DataReader(数据解析器)组成。
换句话说:
第一、数据存储器需要有数据才能叫数据存储器,而这个数据就是通过数据源获得;
第二、获得数据后还需要通过数据解析器将这些数据进行解析,从而成为客户端认可的符合一定格式的数据。
通过以上两个条件,这个数据存储器才能真正的为GridPanel等服务。

现在来看一下Store是如何运作的:
看API,我们只需要关心他的4个配置选项:data、proxy、reader、url
以及他的1个方法:load

1、如果配置了data,则proxy和url无效,且不需要调用load方法来生成Record集合

2、如果没有配置data,则必须设置proxy或url,或两者都设置。此时,如果没有将autoLoad设置为true,那么需要手动进行load方法的调用。就是为了得到数组、Json或Xml格式的数据。

3、reader是必须的,用以指定数据解析器,需要根据获得的数据格式指定相应类型的解析器。

4、如果没有指定proxy,但指定了url,则会默认用HttpProxy作为数据源,并将url作为HttpProxy实例化时的参数。

5、如果data封装的是数组格式的数据,则用ArrayReader作为解析器,也就是需要在Store实例化时,做如下的配置:
reader:new Ext.data.ArrayReader({...});


6、如果data封装的是json格式的数据,则用JsonReader作为解析器,也就是需要在Stroe实例化时,做如下的配置:
reader:new Ext.data.JsonReader({...});


7、如果data封装的是xml格式的数据,则用XmlReader作为解析器,也就是需要在Store实例化时,做如下的配置:
reader:new Ext.data.XmlReader({...});


通过以上5、6这两个解析器的特点,Store衍生了2个子类,分别是SimpleStore和JsonStore。
SimpleStore的内部使用ArrayReader解析器,即他的reader的值为ArrayReader的实例对象。
JsonStore的内部使用JsonReader解析器,即他的reader的值为JsonReader的实例对象。

对于第7条,可以如下应用:
var url = "testxml.xml";
var store = new Ext.data.Store({
  url:url,//指向xml文件
  proxy:proxy,//如果有了url,可以不用配置proxy
  reader:new Ext.data.XmlReader({...})//必须的选项
});
分享到:
评论
1 楼 slysuccess 2014-01-25  
讲解的非常好!以前还不是太明白,现在终于明白了!谢谢博主

相关推荐

    ExtJS grid过滤操作

    ExtJS grid过滤操作,可以动态操作本地的store更改筛选的内容

    extjs4 对各类型store各种数据的读取 model 前台 等等

    extjs4 对多种store数据 ,以多种方式绑定到界面上,以一例子以说明编写

    extjs grid数据导出excel文件

    EXTJS中grid控件数据导出excel示例。很好理解。

    extjsDemo(store grid form mvc模式等一些demo)

    Extjs 4.2 --store grid form mvc模式等一些demo

    EXTJS4.0视频教程配套代码

    第十二讲:extjs4.0的MVC重构十一讲中的grid(中) 第十三讲:extjs4.0的高级组建grid(下)列模式 第十四讲:extjs4.0的高级组件grid补充01选择模式selection和表格特性feature 第十五讲:extjs4.0的高级组件grid...

    Extjs4.0视频教程和源代码,另附文档翻译

    第十二讲:extjs4.0的MVC重构十一讲中的grid(中) 第十三讲:extjs4.0的高级组建grid(下)列模式 第十四讲:extjs4.0的高级组件grid补充01选择模式selection和表格特性feature 第十五讲:extjs4.0的高级组件grid补充02...

    免费 Extjs4.0教程视频

    第十二讲:extjs4.0的MVC重构十一讲中的grid(中) 第十三讲:extjs4.0的高级组建grid(下)列模式 第十四讲:extjs4.0的高级组件grid补充01选择模式selection和表格特性feature 第十五讲:extjs4.0的高级组件grid补充02...

    Extjs教程源码

    第十二讲: EXTJS4.0的MVC重构十一讲中的Grid(中) 第十三讲: EXTJS4.0的高级组建Grid(下)列模式 第十四讲: EXTJS4.0的高级组件Grid补充01选择模式Selection和表格特性Feature 第十五讲: EXTJS4.0的高级组件Grid补充02...

    Extjs4 关于Store的一些操作(加载/回调/添加)

    1、关于加载和回调的问题 ExtJs的Store在加载时候一般是延迟加载的,这时候Grid就会先出现一片空白,等加载完成后才出现数据;因此,我们需要给它添加一个提示信息! 但是Store却没有waitMsg属性。 解决方案: 1.给...

    extjs gridpanel例子和简单应用

    一个关于GridPanel的使用例子 介绍了Proxy,JsonReader Store gridPanel等几个对象的简单使用

    extjs grid取到数据而不显示的解决

    于是我狂找我的代码问题,无意中关掉FF的firbug插件界面,grid就现实出来了。。。原来只要我的窗口发生任何变化Grid才会显示出来。 请问这是我代码问题还是bug?如何解决? 补充一下,我直接在TabPanel里面用items...

    轻松搞定Extjs_原创

    这是我花费数月写的关于Extjs的原创教程,共29个章节。下面是目录: 目 录 1 第一章:序 6 第二章:准备与资源 9 一、下载 9 二、拦路虎 9 三、布署环境 11 四、SpketIDE 12 五、资源 16 六、小结 16 第三章:Ext ...

    ExtJS6.5.0+SSM表格增删改查+分页

    1.使用ExtJS6.5.0+SSM 2.实现Grid表格的增删改查和分页,数据库使用的是MySql, 3.项目代码和数据脚本齐全 4.Jar齐全,加载即可运行 5.VX:humingxing可随时交流

    Extjs exporter

    导出Extjs中的store的数据为excel,前段js导出。 Export store to Excel Well, here's an exporter that can export a grid, tree or simply a store to excel. It's a fork from another project, I adapted it ...

    extjs-sample:示例 ExtJS 应用程序

    这个应用程序由以下文件和目录组成: index.html - 用于显示应用程序的主要 html 文件 app.js - 主要的 ExtJS 应用程序文件 app 文件夹,其中包含应用程序所需的所有文件 控制器 - 包含应用程序的控制器 模型 - ...

    Extjs5.0从入门到实战开发信息管理系统(Extjs基础、Extjs5新特性、Spring、Spring mvc)

    Extjs5.0从入门到实战... panel, tabpanel,Tree, grid, form表单(及其验证方法),数据组件: store,model等,讲解了动态菜单、单表和子父表模块等的开发方法以及后端spring,spring mvc,mybatis的整合和数据打通等。

    精通JS脚本之ExtJS框架.part2.rar

    最后利用一个商品信息管理系统和一个企业任务管理系统,向读者演示了ExtJS在实际项目中的应用以及实现流程。  《精通JS脚本之ExtJS框架》附有配套光盘,提供了书中实例的源代码和视频教学文件。此外,读者还可以...

    EXT-JS Grid 用法

    EXT-JS Grid 用法 用EXT Designer 工具设计,步骤清晰详尽。

    深入浅析Extjs中store分组功能的使用方法

    在项目实践的过程中,遇到需要将grid中数据根据某一字段分组的要求,当然,这个功能在api中有,在此列出来以供大家查找: 两点需要注意的地方: 1、在创建store时,需要设置groupField属性的值,即为需要分组的值 ...

    ExtJs4.1 treegrid CRUD 读取、新增、修改、删除

    实现treegrid组件的(CRUD)读取、新增、修改、删除 ...store.load({node:node}); //异步Ajax提交新增数据 insertdb:function(newrecords) //异步Ajax提交修改数据 updatedb:function(updaterecords)

Global site tag (gtag.js) - Google Analytics