- 浏览: 68863 次
- 性别:
- 来自: 武汉
最新评论
EXT核心API详解(十)_Ext.data.MemoryProxy/ScriptTagProxy/Array-Json-Xml-Reader
- 博客分类:
- extjs
Ext.data.MemoryProxy
MemoryProxy( Object data )
构造
load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void
取数据,和HttpProxy类似,只是params参数没有被使用
使用示例
var proxy=new Ext.data.MemoryProxy([ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]);
var reader = new Ext.data.ArrayReader(
{id: 0},
[
{name: 'name', mapping: 1},
{name: 'occupation', mapping: 2}
]);
var metadata;
function callback(data,arg,success){
metadata=data;
}
proxy.load( null,reader,callback,this);
Ext.data.ScriptTagProxy
这个类和HttpProxy类似,也是用于请求远程数据,但能用于跨主域调用,如果请求时使用了callback参数
则服务端应指定Content-Type属性为"text/javascript"
并返回callback(jsonobject)
反之则应置Content-Type属性为"application/x-json"
并直接返回json对象
ScriptTagProxy( Object config )
构造,其中
config定义为{
callbackParam : String, //回叫参数
nocache : Boolean, //是否缓存
timeout : Number, //超时
url : String //请求数据的url
}
abort() : void
放弃
load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void
Ext.data.DataReader
纯虚类,从数据源得到结构化数据转换为元数据对象,对象包含Record的集合,一般用做Store对象的元数据,
具有如下格式
{
totalRecord:int,
records:Array of Ext.data.Record
}
具体使用参见三个子类
Ext.data.ArrayReader/Ext.data.JsonReader/Ext.data.XmlReader
方法
DataReader( Object meta, Object recordType )
构造
Ext.data.ArrayReader
用于读数组到一个元数据对象
ArrayReader( Object meta, Object recordType )
构造,第一个参数是配置除了可以指示使用哪个字段做id外,不懂其它的用法,
第二个参数是recordType与record对象的create方法的参数一样,是一样config对象数组,具体参见
readRecords( Object o ) : Object
读取o,返回一个元数据对象
用例示范:
//定义数组
var arr=[ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ];
var reader = new Ext.data.ArrayReader(
//以第一个元素做为recordid
{id: 0},
//定义数组到record的映射关系
[
{name: 'name', mapping: 1},
{name: 'occupation', mapping: 2}
]
);
//生成元数据
var data=reader.readRecords(arr);
Ext.data.JsonReader
用于将一个json对象转换为元数据对象
JsonReader( Object meta, Object recordType )
JsonReader的构造参数meta可以有更多选择,
{
id : String,
root : String,
successProperty : String,
totalProperty : String
}
都是对应json对象的属性名
read( Object response ) : Object
从一个response对象返回,response.responseText属性应仅含有一个json格式数据块
readRecords( Object o ) : Object
读取o,返回一个元数据对象
使用示例:
var json={ 'results': 2, 'rows': [
{ 'id': 1, 'name': 'Bill', occupation: 'Gardener' },
{ 'id': 2, 'name': 'Ben', occupation: 'Horticulturalist' } ]
};
var reader=new Ext.data.JsonReader(
{
totalProperty: "results",//totalRecords属性由json.results得到
root: "rows", //构造元数据的数组由json.rows得到
id: "id" //id由json.id得到
},[
{name: 'name', mapping: 'name'},
{name: 'occupation'} //如果name与mapping同名,可以省略mapping
]
)
var data=reader.readRecords(json);
Ext.data.XmlReader
xmlreader对象当然是为xml而准备的
构造:
XmlReader( Object meta, Mixed recordType )
meta与jsonreader类似,
meta是一个{
id : String,
record : String,
success : String,
totalRecords : String
}对象,只是这些字符串都是相对于文档根目录的domquery路径
read( Object response ) : Object
readRecords( Object doc ) : Object
....
var str=["<?xml version=\"1.0\" encoding=\"utf-8\" ?>",
"<dataset>",
"<results>2</results>",
"<row>",
"<id>1</id>",
"<name>Bill</name>",
"<occupation>Gardener</occupation>",
"</row>",
"<row>",
"<id>2</id>",
"<name>Ben</name>",
"<occupation>Horticulturalist</occupation>",
"</row>",
"</dataset>"].join("");
//生成xmldocument对象
var xmlDocument;
if(Ext.isIE){
xmlDocument = new ActiveXObject("Msxml2.FreeThreadedDOMDocument")
xmlDocument.async=false;
xmlDocument.resolveExternals = false;
xmlDocument.loadXML(str)
}
else{
xmlDocument = (new DOMParser()).parseFromString(str, "text/xml");
}
//然后开始...和其它两个reader一样的用法,只是这儿换了一种写法,recordtype也可以是一个record对象
var record = Ext.data.Record.create([
{name: 'name', mapping: 'name'}, // "mapping" property not needed if it's the same as "name"
{name: 'occupation'} // This field will use "occupation" as the mapping.
])
var reader = new Ext.data.XmlReader({
totalRecords: "results",
record: "row", //row是节点选择器
id: "id"
}, record);
var data=reader.readRecords(xmlDocument);
MemoryProxy( Object data )
构造
load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void
取数据,和HttpProxy类似,只是params参数没有被使用
使用示例
var proxy=new Ext.data.MemoryProxy([ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]);
var reader = new Ext.data.ArrayReader(
{id: 0},
[
{name: 'name', mapping: 1},
{name: 'occupation', mapping: 2}
]);
var metadata;
function callback(data,arg,success){
metadata=data;
}
proxy.load( null,reader,callback,this);
Ext.data.ScriptTagProxy
这个类和HttpProxy类似,也是用于请求远程数据,但能用于跨主域调用,如果请求时使用了callback参数
则服务端应指定Content-Type属性为"text/javascript"
并返回callback(jsonobject)
反之则应置Content-Type属性为"application/x-json"
并直接返回json对象
ScriptTagProxy( Object config )
构造,其中
config定义为{
callbackParam : String, //回叫参数
nocache : Boolean, //是否缓存
timeout : Number, //超时
url : String //请求数据的url
}
abort() : void
放弃
load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void
Ext.data.DataReader
纯虚类,从数据源得到结构化数据转换为元数据对象,对象包含Record的集合,一般用做Store对象的元数据,
具有如下格式
{
totalRecord:int,
records:Array of Ext.data.Record
}
具体使用参见三个子类
Ext.data.ArrayReader/Ext.data.JsonReader/Ext.data.XmlReader
方法
DataReader( Object meta, Object recordType )
构造
Ext.data.ArrayReader
用于读数组到一个元数据对象
ArrayReader( Object meta, Object recordType )
构造,第一个参数是配置除了可以指示使用哪个字段做id外,不懂其它的用法,
第二个参数是recordType与record对象的create方法的参数一样,是一样config对象数组,具体参见
readRecords( Object o ) : Object
读取o,返回一个元数据对象
用例示范:
//定义数组
var arr=[ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ];
var reader = new Ext.data.ArrayReader(
//以第一个元素做为recordid
{id: 0},
//定义数组到record的映射关系
[
{name: 'name', mapping: 1},
{name: 'occupation', mapping: 2}
]
);
//生成元数据
var data=reader.readRecords(arr);
Ext.data.JsonReader
用于将一个json对象转换为元数据对象
JsonReader( Object meta, Object recordType )
JsonReader的构造参数meta可以有更多选择,
{
id : String,
root : String,
successProperty : String,
totalProperty : String
}
都是对应json对象的属性名
read( Object response ) : Object
从一个response对象返回,response.responseText属性应仅含有一个json格式数据块
readRecords( Object o ) : Object
读取o,返回一个元数据对象
使用示例:
var json={ 'results': 2, 'rows': [
{ 'id': 1, 'name': 'Bill', occupation: 'Gardener' },
{ 'id': 2, 'name': 'Ben', occupation: 'Horticulturalist' } ]
};
var reader=new Ext.data.JsonReader(
{
totalProperty: "results",//totalRecords属性由json.results得到
root: "rows", //构造元数据的数组由json.rows得到
id: "id" //id由json.id得到
},[
{name: 'name', mapping: 'name'},
{name: 'occupation'} //如果name与mapping同名,可以省略mapping
]
)
var data=reader.readRecords(json);
Ext.data.XmlReader
xmlreader对象当然是为xml而准备的
构造:
XmlReader( Object meta, Mixed recordType )
meta与jsonreader类似,
meta是一个{
id : String,
record : String,
success : String,
totalRecords : String
}对象,只是这些字符串都是相对于文档根目录的domquery路径
read( Object response ) : Object
readRecords( Object doc ) : Object
....
var str=["<?xml version=\"1.0\" encoding=\"utf-8\" ?>",
"<dataset>",
"<results>2</results>",
"<row>",
"<id>1</id>",
"<name>Bill</name>",
"<occupation>Gardener</occupation>",
"</row>",
"<row>",
"<id>2</id>",
"<name>Ben</name>",
"<occupation>Horticulturalist</occupation>",
"</row>",
"</dataset>"].join("");
//生成xmldocument对象
var xmlDocument;
if(Ext.isIE){
xmlDocument = new ActiveXObject("Msxml2.FreeThreadedDOMDocument")
xmlDocument.async=false;
xmlDocument.resolveExternals = false;
xmlDocument.loadXML(str)
}
else{
xmlDocument = (new DOMParser()).parseFromString(str, "text/xml");
}
//然后开始...和其它两个reader一样的用法,只是这儿换了一种写法,recordtype也可以是一个record对象
var record = Ext.data.Record.create([
{name: 'name', mapping: 'name'}, // "mapping" property not needed if it's the same as "name"
{name: 'occupation'} // This field will use "occupation" as the mapping.
])
var reader = new Ext.data.XmlReader({
totalRecords: "results",
record: "row", //row是节点选择器
id: "id"
}, record);
var data=reader.readRecords(xmlDocument);
发表评论
-
extjs 数组转为对像
2010-03-30 09:38 1497createNode : function(node){ ... -
EXT核心API详解(十九)_Ext.grid.Column-Property-ColumnModel/Grid-Grouping-View...
2009-12-01 15:40 7315Ext.grid.ColumnModel 用于定义Grid的列 ... -
EXT核心API详解(十八)_Toolbar/Toolbar.Item
2009-11-30 16:13 1959工具栏,使用起来很简单,add已准备好的元素就行 方法 Too ... -
EXT核心API详解(十六)_TextField/NumberField/TextArea/TriggerField/DateField/ComboBox/Ti
2009-11-30 15:54 2836Ext.form.TextField config{ ... -
EXT核心API详解(十七)_Ext.menu.Menu/BaseItem/Item/CheckItem/Separator/TextItem
2009-11-30 15:40 1688Ext.menu.Menu 菜单对象 config{ ... -
EXT核心API详解(十五)_Ext.form.BasicForm/Field/Checkbox/Radio/Hidden/HtmlEditor
2009-11-30 15:30 1640Ext.form.BasicForm 对应一个dom中的for ... -
EXT核心API详解(十四)_Ext.Button/Ext.SplitButton/Ext.CycleButton
2009-11-30 15:19 1786Ext.Button 简单的按钮类 公有属性: disable ... -
EXT核心API详解(十三)_Ext.Action
2009-11-30 15:04 3493Ext.Action action实现一个脱离了容 器的事件, ... -
EXT核心API详解(十二)_Ext.data.Tree/Ext.data.Node
2009-11-30 14:56 1725Ext.data.Tree 继承自Observable,用于存 ... -
EXT核心API详解(十一)_Ext.data.Store/GroupingStore/JsonStore/SimpleStore
2009-11-30 13:57 2108Ext.data.Store store是一个为Ext器件提供 ... -
EXT核心API详解(九)_Ext.data.Connection/Ext.Ajax/data.Record/data.DataProxy/data.HttpP
2009-11-27 18:08 1611Ext.data.Connection 访问指定的url,这是 ... -
EXT核心API详解(八)_util.JSON/Format/DelayedTask/TaskRunner/TextMetrics
2009-11-27 18:01 1695Ext.util.JSON 轮到大名鼎鼎的JSON了,可惜Ex ... -
EXT核心API详解(七)_Ext.KeyNav/Ext.KeyMap
2009-11-27 17:53 1848Ext.KeyNav Ext的keyNav类能为Ext.Ele ... -
EXT核心API详解(六)_Ext.Fx
2009-11-27 17:49 950Ext.Fx类 对于我这样的懒鬼而言,Fx类是核心类库中最激动 ... -
EXT核心API详解(五)_Ext.Template/Ext.XTemplate/EventManager/EventObject/CompositeEleme
2009-11-27 17:28 2442Ext.Template类 Template类主要是功能是生产 ... -
EXT核心API详解(四)_Ext.DomQuery/Ext.DomHelper
2009-11-27 17:20 1101Ext.DomQuery类 selector语法详见Ext类 ... -
EXT核心API详解(三)_Function
2009-11-27 17:09 1144Function类 createCallback(/*args ... -
EXT核心API详解(二)_Array/Number/String/Date
2009-11-27 16:45 1190Array类 indexOf( Object o ) : Nu ... -
EXT核心API详解(一)_ext
2009-11-27 16:29 1112Ext类 addBehaviors( Object obj ) ... -
Ext API详解索引
2009-11-27 16:19 1249EXT核心API详解(一)_ext EXT核心API详解(二) ...
相关推荐
EXT核心API详解 1、Ext类 ………………………………… 2 2、Array类 …………………………… 4 3、Number类 …………………………… 4 4、String类 …………………………… 4 5、Date类 ……………………………… 5 ...
Ext深入浅出 数据传输 第10 章 数据存储与传输.....................................230 10.1 Ext.data简介............................................230 10.2 Ext.data.Connection....................230 ...
8.4. Ext.data命名空间 8.4.1. proxy系列 8.4.1.1. 人畜无害MemoryProxy 8.4.1.2. 常规武器HttpProxy 8.4.1.3. 洲际导弹ScriptTagProxy 8.4.2. reader系列 8.4.2.1. 简单易行ArrayReader 8.4.2.2. 灵活轻便...
13.5.4 Ext.data.ScriptTagProxy 13.6 数据读取器 13.6.1 Ext.data.DataReader 13.6.2 Ext.data.ArrayReader 13.6.3 Ext.data.JsonReader 13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data....
29、Ext.data.MemoryProxy类 ……… 25 30、Ext.data.ScriptTagProxy类 ………… 25 31、Ext.data.DataReader类 ……………26 32、Ext.data.ArrayReader类 …………… 26 33、Ext.data.JsonReader类 …………… 26 ...
8.4. Ext.data命名空间 8.4.1. proxy系列 8.4.1.1. 人畜无害的MemoryProxy 8.4.1.2. 常规武器HttpProxy 8.4.1.3. 洲际导弹ScriptTagProxy 8.4.2. reader系列 8.4.2.1. 简单易行ArrayReader 8.4.2.2. 灵活轻便...
8.4. Ext.data命名空间 8.4.1. proxy系列 8.4.1.1. 人畜无害的MemoryProxy 8.4.1.2. 常规武器HttpProxy 8.4.1.3. 洲际导弹ScriptTagProxy 8.4.2. reader系列 8.4.2.1. 简单易行ArrayReader 8.4.2.2. 灵活轻便...
13.5.4 Ext.data.ScriptTagProxy 13.6 数据读取器 13.6.1 Ext.data.DataReader 13.6.2 Ext.data.ArrayReader 13.6.3 Ext.data.JsonReader 13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data....
超级数据服务器crudRouter 顾名思义,您可以创建CRUD路由-或api的REST端点。 该模块的依赖关系是代理,因此应在该级别上实现其存储数据的方式。参量参数类型必需的默认值描述代理人代理人是(或getProxy) 代理对象...