您的位置:首页 > Web前端 > JavaScript

Ext.data-GroupingStore/JsonStore/SimpleStore

2007-11-30 16:11 381 查看
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'


    });

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息