Home
JavaEE
Java GUI
Framework
DHtml
Android
插画
教程下载

ATOM 2.0   RSS 2.0
Add to iGoogle Add to Live.com
  • 今天终于收到金山快盘的邀请码
  • 利用最短ie判断在不同浏览器上播放背景音乐
  • 对插画方面的一点感受与回忆
  • 网上看到的两个死里逃生的图片,记录一下
  • 今天开通了糖果社区,附几个激活码
  • 终于可以实现我的多个微博实时同步了
  • 备案和现场拍照就是对站长们的瞎折腾
  • 对Android在互联网应用开发上的纠结
  • 收藏夹中的书签都没了,决定写一个自已的书签管理器
  • 测试自已整理的本机的webapps客户端发送博文能否成功。
  • 今天开通了糖果社区,附几个激活码
  • 终于可以实现我的多个微博实时同步了
  • 备案和现场拍照就是对站长们的瞎折腾
  • 昨天借用飞姐的佳作做的一个浪漫爱情网页
  • 有几个腾讯微博的邀请码(实时更新)
  • BB的网站移到了GAE-JAVA上了
  • 一个基于GAE Python Web.py和JQuery的留言本程序
  • 类许愿墙的一个告白网站和一个电子书网站
  • Android中用Bitmap获取图片中某个区域的图象
  • 对暴力破解带密码的QQ相册的可行性分析
  • 对淘宝web旺旺版一些通讯接口的研究

Extjs中创建或得到Record和Store的几种方法

posted by David Chen at April 15, 2008, 1:00 AM    

以下是我结的几种取得record和store的方法:
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();
Labels:   ExtJs    DHtml  
Trackback:   http://cwq.iou1314.com/extjs-record-store_a306
微博最近更新
[2010-07-31 16:33]    今天下午又将昨天赢的哎齐出来了,郁闷,一进一出,要有入没出才行啊。
[2010-07-31 07:40]    昨晚又去啊泄度开台,呢次赢左差唔多3旧水,下周星期一请假,回郁南去转社保和入党资料。
本站内的任何文章,只代表个人意见或学习所用,如有版权声明,请尊重作者的劳动成果,在转载时请保留原始链接并注明出处。
Power by David's PhpCms, © 2007 - 2010 CWQ.IOU1314.COM All Rights Reserved.