Ext.data.Store是数据相关的类。我们这里用combobox和gridPanel来测试store的用法
先来一个combobox的例子
var sqldata = [[1, "wilson.fu", 10], [2, "wilson.fu2", 20], [3, "wilson.fu3", 30]]; var store = new Ext.data.SimpleStore({ fields : [{ name : "id" }, { name : "name" }, { name : "ordernum" }] }); store.loadData(sqldata);
var comboBox = new Ext.form.ComboBox({ mode : 'local', // 数据模式, local为本地模式, 如果不设置,就显示不停的加载中... triggerAction : 'all', // 显示所有下列数.必须指定为'all' store : store, valueField : 'id', // 传送的值 displayField : 'name', renderTo : Ext.getBody() });
接下来是一个gridPanel的例子:
var sm = new Ext.grid.CheckboxSelectionModel({ handleMouseDown : Ext.emptyFn }); var cm = new Ext.grid.ColumnModel([sm, { header : "编号", dataIndex : "id", sortable : true }, { header : "姓名", dataIndex : "name" }, { header : "排序值", dataIndex : "ordernum", sortable : true }]);
var gd = new Ext.grid.GridPanel({ cm : cm, sm : sm, store : store, loadMask : true, layout : 'fit', autoHeight : true, renderTo : Ext.getBody() });
显示的效果如图:
说道combox还有一种远程模式,这个博客讲的比较细
http://www.blogjava.net/algz/articles/227675.html
关于record的load数据的两种方法,这里有两个例子
http://www.blogjava.net/liuwentao253/archive/2009/04/02/263511.html
关于record介绍比较详细的参考这两个文章:
http://www.cnblogs.com/andyliuxl/archive/2012/03/31/2426233.html
http://betty.blog.51cto.com/677874/135293/
Ext.data.Record就是一个设定了内部数据类型的对象,它是Ext.data.Store的最基本组成部分。如果把Ext.data.Store看作是一张二维表,那么它的每一行就对应一个Ext.data. Record实例。 Ext.data.Record的主要功能是保存数据,并且在内部数据发生改变时记录修改的状态,它还可以保留修改之前的原始值。
这里有一个record的例子:
/** * record */ var PersonRecord = Ext.data.Record.create([ {name: 'name', type: 'string'}, {name: 'sex', type: 'int'} ]); var boy = new PersonRecord({ name: 'boy', sex: 0 }); alert(boy.data.name); alert(boy.data['name']); alert(boy.get('name'));
可以参考这个文章
http://canfly2010.iteye.com/blog/457925
总结一下,store和record都是EXT中和数据交互有关的控件,其中store用于gridpanel和combobox这类的控件中,record是store中的一条数据。