1) // create 最基本建立Record和Store的方法
var myStore = new Ext.data.Store();
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'}
]); // 列表影射,columnModel
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);
2) // 这种方法也可以构建一个store
var store = new Ext.data.SimpleStore({
fields: ['abbr', 'state', 'nick'], // 一定要有这个,如果放在grid中,与column的dataIndex属性值对应
data : [
['AL', 'Alabama', 'The Heart of Dixie'],
['AK', 'Alaska', 'The Land of the Midnight Sun'],
['IN', 'Indiana', 'The Hospitality State']
]
});
3) 还有一个种方法,用ArrayReader,数据源是js二维数组,用SimpleStore
var store = new Ext.data.SimpleStore({
/*
数据源:[ [1, 'AL', '0.1', 'The Heart of Dixie', '6', new Date()] ]
ArrayReader中, ajax会返回一个数据源给ArrayReader,
fields数组与数据源的序列的顺序要相同
*/
fields: ['pid', 'company', 'price', 'change', 'pctChange', 'lastChange'],
url: 't2.php',
reader: new Ext.data.ArrayReader(
{id: 0},
/*
id 的取值应为下面的mapping的值,如果在下面没有出现,则取数据源的0序列
,recordid可通过store.getById(recordid) 取得相应的 Record
当有 id 这个属性设置的时候,如果id值为2,就表示用price作recordid
, 如果 name 的值与数据源的序列的名称相同,就可以不指定mapping
*/
[{name:'company',mapping: 1}, {name:'price',mapping: 2}, {name:'change',mapping: 3}, {name:'pctChange',mapping: 4}, {name:'lastChange',mapping: 5}]
)
});
// 因为使用url会触发ajax, 是异步方式,如果是要ajax读取数据后马上触发事件,
// 必须添加load事件的监听
store.addListener('load', function(st, rds, opts) {
// st 是当前的store, rds是读到的Record[], opts是store的配置
//alert(rds.getTotalCount());
nextstore.removeAll(); //先清除另一个store的内容
nextstore.add(rds); // 给另一个store添加这些records
//for( var c=0; c<rds.length; c++ ) store.addSorted(rds[c]);
});
store.load();
4) 还有一个种方法,用XmlReader,数据源是xml, 只能用Ext.data.Store,不能用SimpleStore
就因为SimpleStore,害我搞了n久才发现只能用Store
先看数据源:
<?xml?>
<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>
js:
var store = new Ext.data.Store({
fields: ['id', 'name', 'occupation'],
url: 't2.php',
reader: new Ext.data.XmlReader(
{
record: "row", // xml中每行数据的内容
totalRecords: "results", // xml中的results节点,表时记录数 (option)
id: 'id'
// 每行数据的素引,xml中是row标签的子节点, 作recordid, (option),
// 如果id列在数据源中的值有重复,就只会显前面的列,后面的放弃.
},
/*
id 的取值应为下面的mapping的值,如果在下面没有出现,则取数据源的0序列
当有 id 这个属性设置的时候,如果id值为2,就表示用price作recordid
下面的mapping,是定义的素引与xml中的节点对应
, 如果 name 的值与数据源的序列的名称相同,就可以不指定mapping
*/
[{name:'name',mapping: 'name'}, {name:'occupation'} ]
// 这里也可写成 ['id', 'name', 'occupation']
)
});
// 因为使用url会触发ajax, 是异步方式,如果是要ajax读取数据后马上触发事件,
// 必须添加load事件的监听
store.addListener('load', function(st, rds, opts) {
// st 是当前的store, rds是读到的Record[], opts是store的配置
//alert(rds.getTotalCount());
nextstore.removeAll(); //先清除另一个store的内容
nextstore.add(rds); // 给另一个store添加这些records
//for( var c=0; c<rds.length; c++ ) store.addSorted(rds[c]);
});
store.load();
分享到:
相关推荐
35、Ext.data.Store类 …………………… 28 36、Ext.data.GroupingStore类 ………… 32 37、Ext.data.SimpleStore类 ………… 34 38、Ext.data.Tree类 …………………… 34 39、Ext.data.Node类 ………………… 34 ...
- `Ext.data.Store.remove(record)`:移除记录。 #### 三十六、Ext.data.GroupingStore类(第32页) - **概述**:Ext.data.GroupingStore类实现了分组数据存储。 - **常用方法**: - `new Ext.data.GroupingStore...
35、Ext.data.Store类 …………………… 28 36、Ext.data.GroupingStore类 ………… 32 37、Ext.data.SimpleStore类 ………… 34 38、Ext.data.Tree类 …………………… 34 39、Ext.data.Node类 ………………… 34 ...
29. **Ext.data.ArrayReader类**、**JsonReader类**和**XmlReader类**:不同数据格式(数组、JSON、XML)的特定数据读取器。 30. **Ext.data.Store类**:数据存储,管理数据集,与DataProxy和DataReader交互。 31....
- `Ext.data.SimpleStore.add(record)`: 添加数据记录。 #### 38. Ext.data.Tree 类 (P.34) - **概述**:用于管理树形结构的数据。 - **常用方法**: - `Ext.data.Tree.load(root, callback, scope)`: 加载树数据...
13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data.DwrProxy 13.7.2 Ext.data.DWRTreeLoader 13.7.4 Web服务端配置 13.7.5 服务层接口 第14章 ExtJS扩展 14.1 利用Ext.extend实现继承 14.2 与...
13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data.DwrProxy 13.7.2 Ext.data.DWRTreeLoader 13.7.4 Web服务端配置 13.7.5 服务层接口 第14章 ExtJS扩展 14.1 利用Ext.extend实现继承 14.2 与...
10.3 Ext.data.Record .............................232 10.4 Ext.data.Store ...............................233 10.4.1 基本应用...................................233 10.4.2 对数据进行排序...................
var store = new Ext.data.Store({ reader: reader }); // 创建EditorGridPanel var grid = new Ext.grid.EditorGridPanel({ store: store, cm: new Ext.grid.ColumnModel([ {header: 'Field 1', dataIndex: '...
7.3 Ext.data.Record 198 7.4 ArrayReader、JsonReader和XmlReader 199 7.4.1 JsonReader 200 7.4.2 ArrayReader 200 7.4.3 XmlReader 201 7.5 Store的加载数据 201 7.6 Store的数据操作 203 7.6.1 添加数据 203 ...
1. Renamed Coolite.Ext.Web project to Ext.Net 2. Renamed Coolite.Examples project to Ext.Net.Examples 3. Renamed Coolite.Ext.UX project to Ext.Net.UX 4. Renamed Coolite.EmbeddedResourceBuilder ...
1. **解析XML**:EXT提供了一个名为`Ext.data.XmlReader`的类,用于从XML文档中读取数据。你需要定义reader的配置,包括XML的根节点和数据节点的标识符。例如,如果XML的根节点是`menu`,节点是`item`,配置可能如下...
- **记录模型**: `Ext.data.Record`定义了数据模型的结构。 - **数据代理**: `DataProxy`、`HttpProxy`、`MemoryProxy`和`ScriptTagProxy`用于从不同来源加载数据。 - **数据读取器**: `DataReader`、`...
Extjs解析xml问题 ... var store=new Ext.data.Store({ url:'GridData.xml', reader:new Ext.data.XmlReader( {record:'Item'}, ["ASIN","Author","Manufacturer","ProductGroup","Title"]) });
**XTemplate 和 Ext.data.Connection 类**:XTemplate用于渲染数据到HTML,Connection类处理Ajax请求,与服务器交互。 23-25. **Ext.Ajax, DataProxy, HttpProxy, MemoryProxy, ScriptTagProxy 类**:这些类涉及...
在Ext JS中,XML数据的读取通常通过`Ext.data.XmlReader`类来实现,它是一个数据读取器,能够将XML数据转换为JavaScript对象,这些对象可以被Ext的数据存储(如`Ext.data.Store`)进一步处理和显示。在本文中,我们...
reader: new Ext.data.XmlReader({ record: 'item' }, Record) }); ds.load(); grid.reconfigure(ds, cm); } ``` 2. **添加**: - 可以通过创建新的记录并将其插入到指定位置来实现添加操作: ```...
var store = new Ext.data.JsonStore({ url: 'link.ejf', totalProperty: 'results', root: 'rows', idProperty: 'id', fields: ['title', 'username', {name: 'loginTimes', type: 'int'}, {name: '...