本文共 2560 字,大约阅读时间需要 8 分钟。
Ext.data.GroupingStore 继承自Ext.data.Store,为Store增加了分组功能.其它用法与Store一致,惟一需要注意的是使用GroupingStore时必须指定sortInfo信息 增加了配置属性 groupField : String//用于分组的字段 groupOnSort : Boolean//如果为真,将依排序字段重新分组,默认为假 remoteGroup : Boolean//远程排序 当然也会多一个group方法 groupBy( String field, [Boolean forceRegroup] ) : void 顾名思义都是重新排序用的 下面是个简单的示例 var arr = [ [ 1 , ' 本 ' , ' 拉登 ' ], [ 2 , ' 笨 ' , ' 拉登 ' ],[ 3 , ' 笨 ' , ' 拉灯 ' ] ]; var reader = new Ext.data.ArrayReader( {id: 0} , [ {name: 'name', mapping: 1} , {name: 'occupation', mapping: 2} ]); var store = new Ext.data.GroupingStore( { reader:reader, groupField:'name', groupOnSort:true, sortInfo:{field: 'occupation', direction: "ASC"} //使用GroupingStore时必须指定sortInfo信息 } ); store.loadData(arr); // GridPanel以后会讨论,这儿使用它是为了直观的表现GroupingStore var grid = new Ext.grid.GridPanel( { ds: store, columns: [ {header: "name", width: 20, sortable: true,dataIndex: 'name'}, {header: "occupation", width: 20,sortable: true, dataIndex: 'occupation'} ], view: new Ext.grid.GroupingView({ forceFit:true, groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})' }), frame:true, width: 700, height: 450, collapsible: true, animCollapse: false, title: 'Grouping Example', renderTo: 'Div_GridPanel' } ); Ext.data.JsonStore 也是Store子类,目标是更方便的使用json对象做数据源 构造中多了fields,root,用法如下例所示 /* 这是使用远程对象,返回内容与下面本地对象的data一致 var store=new Ext.data.JsonStore({ url:'jsoncallback.js', root:'rows', fields:['id','name','occupation'] }); store.load(); */ var store = new Ext.data.JsonStore( { data:{ 'results': 2, 'rows': [ { 'id': 1, 'name': 'Bill', occupation: 'Gardener' }, { 'id': 2, 'name': 'Ben', occupation: 'Horticulturalist' } ]}, autoLoad:true, root:'rows', fields:['id','name','occupation'] } ) // 目前请先略过gridpanel,以后再说 var grid = new Ext.grid.GridPanel( { ds: store, columns: [ {header: "id", width: 200, sortable: true,dataIndex: 'id'}, {header: "name", width: 200, sortable: true,dataIndex: 'name'}, {header: "occupation", width: 200,sortable: true, dataIndex: 'occupation'} ],height:350, width:620, title:'Array Grid', renderTo: 'Div_GridPanel' } ); Ext.data.SimpleStore 从数组对象更方便的创建Store对象, 例 var store = new Ext.data.JsonStore( { data:[ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ], autoLoad:true, fields:[{name: 'name', mapping: 1},{name:'occupation',mapping:2}] } ) var grid = new Ext.grid.GridPanel( { ds: store, columns: [ {header: "name", width: 200, sortable: true,dataIndex: 'name'}, {header: "occupation", width: 200,sortable: true, dataIndex: 'occupation'} ],height:350, width:620, renderTo: 'Div_GridPanel' } ); 转载地址:http://nrold.baihongyu.com/