简单的JSONSTORE
var data = [
['1','name1','descn1'],
['2','name2','descn2'],
['3','name3','descn3'],
['4','name4','descn4'],
['5','name5','descn5']
];//二维数组
var ds = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.ArrayReader({}, [ {name: 'id'}, {name: 'name'}, {name: 'descn'} ])
});
ds.load(); //标准 可以作为静态数据来模拟动态的例子。
ds要对应两个部分:proxy和reader。proxy告诉我们从哪里获得数据,reader告诉我们如何解析这个数据。
现在我们用的是Ext.data.MemoryProxy,它是专门用来解析js变量的。你可以看到,我们直接把data作为参数传递进去了。
Ext.data.ArrayReader专门用来解析数组,并且告诉我们它会按照定义的规范进行解析,每行读取三个数据,第一个叫id,第二个叫 name,第三个descn。是不是有些眼熟,翻到前面cm定义的地方,哦,原来跟dataIndex是对应的。这样cm就知道哪列应该显示那条数据了。唉,你要是能看明白这一点,那你实在是太聪明了。
记得要执行一次ds.load(),对数据进行初始化。
有兄弟可能要问了,要是我第一列数据不是id而是name,第二列数据不是name而是id咋办?嗯,嗯,这个使用就用mapping来解决。改改变成这样:
var ds = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data), //HttpProxy
reader: new Ext.data.ArrayReader({}, [
{name: 'id', mapping: 1},
{name: 'name', mapping: 0},
{name: 'descn', mapping: 2}
])
});
----------------------------------------------------------------------------------
复杂一点的JSONSTORE
var resourcestore = new Ext.data.JsonStore({
root:'',
id:'resourceid',
remoteSort: false,
pruneModifiedRecords:true,//设置为true,则每次当store装载或有record被移除时,清空所有修改了的record信息. 默认为false.
fields: [ //两对键值对,这是name
'resourceid',
{name:'contentno',mapping:'content.contentno'},
],
proxy: new Ext.data.HttpProxy({
url: 'operation/resource/manageresource.jsp'//相对路径
})
});
----------------------------------------------------------------------------------
load事件
store.on('load',function(store,records,o){
Ext.Ajax.request({
url : "operation/task/querytimedeveloperstatustasklist.jsp?developerid="+finishtask_store.baseParams.developerid+"&starttime="+finishtask_store.baseParams.starttime+"&endtime="+finishtask_store.baseParams.endtime,
method : 'post',
success : function(response, options) {
var results = Ext.util.JSON.decode(response.responseText);
alert(results.totalworkload);//取数据 { totalworkload : 2000}
results.tasklist[0].taskid // tasklist :[ {taskid: 1,.....},{taskid:2,.....}.....] 大概就是获取第一条数据的taskid的值。
},
failure : function() { result = false;
}
});}
//从JSONSTORE中取数据方法:
store.reader.jsonData['totalworkload'] //马上测试之。。。恍然大悟。
相关推荐
ExtJs学习资料28-Ext.data.JsonStore数据存储器
在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助
extjs4 对多种store数据 ,以多种方式绑定到界面上,以一例子以说明编写
conn.request({ success: function(response) { Ext.Msg.alert('info', response.responseText);...var ds = Ext.data.JsonStore({ url: 'xxx.jsp', root: 'root', fields: ['id','name','descn'] });
表格的数据存储器由Ext.data.Store定义,根据解析数据的不同,数据存储器可具体分为如下几种: JsonStore,SimpleStore,GroupingStore… 一个表格的基本编写过程: 1、创建表格列模型 var cm = new Ext.grid....
store : new Ext.data.JsonStore({ url : contextPath + '/AutoComplete', root : 'root', baseParams : { limit : 20 }, fields : [ { name : 'value', mapping : 'value' },{ name:'name', mapping:'...
store: new Ext.data.JsonStore({ idProperty: 'VehicleNo', url: '../ajax/test.ashx, fields: ['VehicleNo', 'phoneNum'] }), id:'querynodesid', emptyText:'快速检索', hiddenName: 'VehicleNo', ...
拿combobox的数据 代码如下: comboDS = new Ext.data.JsonStore({ url : ‘test.do’, fields : [{ name : ‘id’ }, { name : ‘display’ }] }); combobox定义 combobox 中的id必须要有,后面要跟据id取combobox值...
Extjs 通用查询功能 支持动态添加多个查询条件、定义逻辑关系,支持整形、浮点、字符串、日期、布尔值、自定义选择列表的录入,通过Ext.data.JsonStore可方便的与服务器交互。
表格的列信息由类Ext.grid.Column(以前是由Ext.grid.ColumnModel定义)、而表格的数据存储器由Ext.data.Store定义,数据存储器根据解析的数据不同分为JsonStore、SimpleStroe、GroupingStore等。 下面
表格的列信息由类Ext.grid.ColumnModel定义、而表格的数据存储器由Ext.data.Store定义,数据存储器根据解析的数据不同分为JsonStore、SimpleStroe、GroupingStore等。 我们首先来看最简单的使用表格的代码: 代码...
代码如下: Ext.onReady(function(){ //定义store var chartStore = new Ext.data.JsonStore({ root:’root’, fields:[ {name:’ne’,type:’string’},//网元 {name:’confine’,type:’int’},//阀值 {name:’bill...
store3 = new Ext.data.JsonStore({ autoDestroy: true, totalProperty : 'totle', url: 'service.do', storeId: 'myStore', root: 'data', fields : [ 'id', "name", "pw" ] }); var pagingToolbar = new Ext....