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'
     });
ExtJS教程-
 Hibernate教程-
Struts2 教程-
Lucene教程