extjs3.0帮助文档: DataReader( Object meta, Array/Object recordType ) Create a new DataReader 参数: meta : Object Metadata configuration options (implementation-specific). 元数据配置选项(...-...) recordType : Array/Object Either an Array of Field definition objects 任意一个Field定义的对象数组 which will be passed to Ext.data.Record.create, 作为对象传递给Ext.data.Record.create, or a Record constructor created using Ext.data.Record.create. 或一个由Ext.data.Record.create创建的Record结构. 返回: void 内部关键js代码: Ext.data.DataReader = function(meta, recordType){ this.meta = meta; this.recordType = Ext.isArray(recordType) ? Ext.data.Record.create(recordType) : recordType; this.buildExtractors(); }; ...略... rs.id = data[this.meta.idProperty]; ...略... return (data && Ext.isObject(data) && !Ext.isEmpty(data[this.meta.idProperty])) ? true : false; 得出结论: a.recordType可以直接是一个Field结构的数组,由内部代码加上Ext.data.Record.create(...)。 b.recordType可以是已经加上Ext.data.Record.create(...)的Field数组。 c.meta中可以放属性:idProperty。 extjs3.0帮助文档: XmlReader( Object meta, Object recordType ) Create a new XmlReader. 参数: meta : Object Metadata configuration options recordType : Object Either an Array of field definition objects as passed to Ext.data.Record.create, 任意一个field定义的对象数组作为参数传递给Ext.data.Record.create or a Record constructor object created using Ext.data.Record.create. 或者一个使用Ext.data.Record.create创建的Record结构对象。 返回: void 可以看出需要传两个obj进去, 查看内部js代码 Ext.data.JsonReader = function(meta, recordType){ //如果没有meta,那创建一个Obj给meta。 meta = meta || {}; //把idProperty等添加到meta,如果它没有这些成员。 Ext.applyIf(meta, { idProperty: 'id', successProperty: 'success', totalProperty: 'total' }); //调用父类 Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType || meta.fields); }; ...略... var sid = this.meta.idPath || this.meta.id; var totalRecords = 0, success = true; if(this.meta.totalRecords){ totalRecords = q.selectNumber(this.meta.totalRecords, root, 0); } if(this.meta.success){ var sv = q.selectValue(this.meta.success, root, true); success = sv !== false && sv !== 'false'; } 可知:a.meta中可以有下列属性:idProperty、successProperty、totalProperty、fields、idPath、id、totalRecords、success。 b.recordType可以为空,但要在meta中写fields。 c.调用了父类构造,所以其他的跟父类一样。 extjs3.0帮助文档: JsonReader( Object meta, Array/Object recordType ) Create a new JsonReader Create a new JsonReader 参数: meta : Object Metadata configuration options. recordType : Array/Object Either an Array of Field definition objects (which will be passed to Ext.data.Record.create, or a Record constructor created from Ext.data.Record.create. 返回: void 查看内部js代码: Ext.data.JsonReader = function(meta, recordType){ meta = meta || {}; Ext.applyIf(meta, { idProperty: 'id', successProperty: 'success', totalProperty: 'total' }); Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType || meta.fields); }; ...略... if (Ext.isEmpty(o[this.meta.root])) { throw new Ext.data.JsonReader.Error('root-emtpy', this.meta.root); } else if (o[this.meta.root] === undefined) { throw new Ext.data.JsonReader.Error('root-undefined-response', this.meta.root); } 可知:a.meta中可以有下列属性:idProperty、successProperty、totalProperty、root、fields b.recordType可以为空,但要在meta中写fields。 c.调用了父类构造,所以其他的跟父类一样 总结:...
推荐阅读
在js中单选框和复选框获取值的方式
复制代码 代码如下:// JavaScript Document function sub1() { // 用Form名称直接引用form对象 //form1.method = "get"; // 将form名称作为document对象的属性来引用form对象, // 并用user作为form对象的属性>>>详细阅读
本文标题:extjs DataReader、JsonReader、XmlReader的构造方法
地址:http://www.17bianji.com/kaifa2/JS/27757.html
1/2 1