发新话题
打印

extjs中的store ,reader,proxy

extjs中的store ,reader,proxy

1. store 是一个存储 Ext.data.Record的容器,proxy的任务是获取数据,reader是从特定格式,生成 Record
2. store总是维护一个 proxy属性,如果没有显式指定proxy,但指定了url属性,会自动转换成 httpproxy
3. 记录类,recordType,记录字段列表
4. auto属性,将自动加载
5. store的事件: datachanged,metachange,add,remove,update,clear,beforeload,load,loadexception
6. store的方法:
    add : function(records){
    remove : function(record){
    removeAll : function(){
    insert : function(index, records){
    indexOf : function(record){
    getAt : function(index){
    getRange : function(start, end){
    storeOptions : function(o){
    load : function(options){
    reload : function(options){
    loadRecords : function(o, options, success){
    loadData : function(o, append){
    getCount : function(){
    getTotalCount : function(){...


7. jsonstore 的reader是 jsonreader, 并需要指定 root,如下所示:
    url: 'getUsers.jsp',
    root: 'rows',
    fields: ['name', 'age',...
8. simplestore,默认指定arrayreader为reader, fields,作为字段列表,不需要指定 root,本人以为称作 arraystore意义上更对称
   fields: ["id", "name"],
   data: [[0, "年报"], [1, "半年报"], [2, "季报"], [3, "月报"], [5, "日报"]]

9. 所有reader ,重载 readRecords方法
10. jsonreader 将读入的原始数据,放在 jsonData属性中,这很好,可以从后台传来一些附加信息,然后,用js读取,如:
    jsonstore.reader.jsonData.XXX
11. store 如果指定 {data:...} 调用store.loadData方法, 如果用 httpproxy则调用 store.loadRecords ,不会调用.  参照 store.load()方法:
复制内容到剪贴板
代码:
load:function(){
...
this.proxy.load(p, this.reader, this.loadRecords, this, options);
...
}

TOP

发新话题