`
gkuiyj
  • 浏览: 92870 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

extJs 2.1学习笔记(Ext.data.JsonReader篇一)

阅读更多
有个事要说一下:DataProxy的子类呢,都有一个load来加载数据,DataReader的子类呢,都有一个read来读取数据。

  而Ext.data.JsonReader有两个关键函数:read、readRecords。好了。来研究一下。

  Ext.data.JsonReader = function(meta, recordType){
       meta = meta || {};
       Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType || meta.fields);
  };

  这是构造函数。简单。meta是数据格式定义,recordType是记录类型。其中recordType可以是一个定义记录的数组,也可以不传,而把记录的各个字段的定义放到meta中的fields字段中。且看它对父类构造函数的调用:

  Ext.data.DataReader = function(meta, recordType){
   this.meta = meta;
   this.recordType = Ext.isArray(recordType) ?
   Ext.data.Record.create(recordType) : recordType;
  };
 
  Ext.data.DataReader.prototype = { };

  这下全明白了吧。recordType可以是记录类型,可以是字段定义数组,还可以不传。

  所以,构造函数就是定义两个属性:meta、recordType。这两东西后面有用。

  这个meta、recordType组成如何?这个必须说明,不然,这个类也就没法用了。

  meta:

  totalProperty    json数据中,保存总记录数的属性

  successProperty   json数据中,保存是否返回成功的属性名

  root        json数据中,保存记录集的属性的属性名

  id         json数据中,记录中主键所对应的列的属性名

  recordType:

  这个东西,事实上要去看Ext.data.Record的create函数的文档,我且把它翻译一下,如下:

create( [Array o] ) : function

创建包含指定字段结构的继承自Ext.data.Record的类。静态方法。

参数:
  o : Array
    一个定义记录结构的字段信息数组。每个数组元素包含name,其他可选的有:mapping、type。通过它们,可以让Ext.data.Reader从一个数据对象中获取各字段的值。每个字段定义对象都可能包含如下属性:

     name : String
     在记录中标志一个字段的名字。它通常用于引用指定字段,例如,在定义Ext.grid.ColumnModel的dataIndex属性时,要传过去的。
     
     mapping : String
     当在Ext.data.Reader中创建记录时,如何将json对象中指定属性值映射到此字段。

     type : String
     字段的类型,可能值为:
       auto(默认值,没有任何转化)、string、int、float、boolean、date
        
            sortType : Mixed
     Ext.data.SortTypes中的一个成员。

     sortDir : String
     排序方式,"ASC"或者"DESC"。

     convert : Function
     如果要对这个字段的值进行一些物殊处理,这时需要一个能定制的回调,用它来手工处理值。它的参数如下:
        v : Mixed
        通过mapping映射找到的值。已从json中取出来的。
        rec : Mixed
        在json中的,对应于此记录的json对象。

     dateFormat : String
     用于Date.parseDate函数的格式化字符串。

     defaultValue : Mixed
     当字段值在原数据中不存在时所取的默认值,默认为空字符串。

用法:

var TopicRecord = Ext.data.Record.create([
    {name: 'title', mapping: 'topic_title'},
    {name: 'author', mapping: 'username'},
    {name: 'totalPosts', mapping: 'topic_replies', type: 'int'},
    {name: 'lastPost', mapping: 'post_time', type: 'date'},
    {name: 'lastPoster', mapping: 'user2'},
    {name: 'excerpt', mapping: 'post_text'}
]);

var myNewRecord = new TopicRecord({
    title: 'Do my job please',
    author: 'noobie',
    totalPosts: 1,
    lastPost: new Date(),
    lastPoster: 'Animal',
    excerpt: 'No way dude!'
});
myStore.add(myNewRecord);

  好了,这一篇差不多了,未尽内容放下一篇中了。
分享到:
评论
1 楼 hzxlb910 2013-06-25  
背景看的头晕

相关推荐

    extJs 2.1学习笔记

    17. extJs 2.0学习笔记(Ext.data序论篇) 39 18. extJs 2.0学习笔记(Ext.Panel终结篇) 40 19. extJs 2.0学习笔记(事件注册总结篇) 45 20. extJs 2.0学习笔记(Ext.Panel篇一) 48 21. extJs 2.0学习笔记(Ext.Panel篇二)...

    extJs+2.1学习笔记.pdf

    14. **extJs 2.0 学习笔记(Ext.data序论篇)** 这部分介绍了Ext.data模块的基础,包括DataModel、Reader和Writer,是理解数据绑定和数据管理的关键。 15. **extJs 2.0 学习笔记(Ext.Panel终结篇)** Panel是...

    ExtJs学习笔记,共30讲

    7. **Ext.data.JsonReader篇**:JsonReader用于解析JSON格式的数据,与Store配合使用。这部分可能包括了JsonReader的配置项,如root、idProperty等,以及如何处理JSON响应。 8. **Ext.data.HttpProxy篇**:...

    Ext 学习总结 pdf版

    - **ExtJs2.0学习笔记(Ext.data序论篇)**:这部分内容是对Ext JS 2.0中`Ext.data`模块的概述,讲解了如何管理和操作数据。 - **ExtJs2.0学习笔记(Ext.Panel终结篇)**:深入探讨了`Ext.Panel`组件的各种特性和用法。...

    extjs学习笔记知识点总结

    13. **extJs 2.0 学习笔记**:这部分可能包括了针对2.0版本的一些特性讲解,如Ajax的使用、Ext.data模块的基础知识以及Panel组件的深入探讨。 以上只是对每个章节主题的简要概述,实际的学习笔记会更深入地讲解每个...

    老师整理的extjs学习笔记

    ### ExtJS 学习笔记概览 #### 一、ExtJS 入门 **1.1 ExtJS 构成及如何引用** ExtJS 是一款基于 JavaScript 的开源框架,专为 Web 应用程序的前端界面设计。其核心优势在于提供了一套丰富的 UI 组件和强大的数据...

    ext经典资料学习—201012

    13. **extJs 2.0 学习笔记**:这部分笔记涵盖了EXTJS 2.0版本的主要特性,包括Ajax的使用、数据管理基础、Panel的深入理解等,帮助开发者掌握EXTJS的基本用法。 EXTJS的学习是一个不断深入的过程,从基础组件到高级...

    DotNet+Ext入门

    【 DotNet + Ext 入门 】 在 IT 领域,DotNet 是微软公司推出的一种全面的开发框架,用于构建各种类型的应用程序,而 ...通过深入学习以上各篇笔记,你将能够更全面地理解和运用这些技术,为你的项目带来卓越的表现。

Global site tag (gtag.js) - Google Analytics