继承自Ext.data.Store,为Store增加了分组功能.其它用法与Store一致,惟一需要注意的是使用GroupingStore时必须指定sortInfo信息
增加了配置属性
groupField : String//用于分组的字段
groupOnSort : Boolean//如果为真,将依排序字段重新分组,默认为假
remoteGroup : Boolean//远程排序
当然也会多一个group方法
groupBy( String field,[Boolean forceRegroup] ) : void
顾名思义都是重新排序用的
下面是个简单的示例
var
@H_301_17@arr
@H_301_17@=
@H_301_17@[[
@H_301_17@1
@H_301_17@,
@H_301_17@'
@H_301_17@本
@H_301_17@拉登
@H_301_17@],[
@H_301_17@2
@H_301_17@笨
@H_301_17@3
@H_301_17@拉灯
@H_301_17@]];
@H_301_17@reader @H_301_17@ new @H_301_17@Ext.data.ArrayReader(
@H_301_17@{id:@H_301_17@0@H_301_17@} ... @H_301_17@{name:@H_301_17@'@H_301_17@name301_17@1... @H_301_17@occupation@H_301_17@2@H_301_17@
]);
@H_301_17@store @H_301_17@Ext.data.GroupingStore( @H_301_17@{
reader:reader,
groupField:true...@H_301_17@{field:301_17@"@H_301_17@ASC@H_301_17@}@H_301_17@@H_301_17@//@H_301_17@使用GroupingStore时必须指定sortInfo信息@H_301_17@
@H_301_17@);
store.loadData(arr);
@H_301_17@// @H_301_17@GridPanel以后会讨论,这儿使用它是为了直观的表现GroupingStore @H_301_17@
@H_301_17@grid @H_301_17@Ext.grid.GridPanel( @H_404_151@@H_301_17@{
ds:store,
columns:[
@H_301_17@{header:301_17@20...@H_301_17@
],
view:new@H_301_17@Ext.grid.GroupingView(@H_301_17@{
forceFit:301_17@{text}({[values.rs.length]}{[values.rs.length>1?"Items":"Item"]})@H_301_17@
}@H_301_17@),
frame:301_17@700301_17@450animCollapse:false301_17@GroupingExample301_17@Div_GridPanel@H_301_17@
} @H_301_17@);
@H_301_17@reader @H_301_17@ new @H_301_17@Ext.data.ArrayReader(
@H_301_17@{id:@H_301_17@0@H_301_17@} ... @H_301_17@{name:@H_301_17@'@H_301_17@name301_17@1... @H_301_17@occupation@H_301_17@2@H_301_17@
]);
@H_301_17@store @H_301_17@Ext.data.GroupingStore( @H_301_17@{
reader:reader,
groupField:true...@H_301_17@{field:301_17@"@H_301_17@ASC@H_301_17@}@H_301_17@@H_301_17@//@H_301_17@使用GroupingStore时必须指定sortInfo信息@H_301_17@
@H_301_17@);
store.loadData(arr);
@H_301_17@// @H_301_17@GridPanel以后会讨论,这儿使用它是为了直观的表现GroupingStore @H_301_17@
@H_301_17@grid @H_301_17@Ext.grid.GridPanel( @H_404_151@@H_301_17@{
ds:store,
columns:[
@H_301_17@{header:301_17@20...@H_301_17@
],
view:new@H_301_17@Ext.grid.GroupingView(@H_301_17@{
forceFit:301_17@{text}({[values.rs.length]}{[values.rs.length>1?"Items":"Item"]})@H_301_17@
}@H_301_17@),
frame:301_17@700301_17@450animCollapse:false301_17@GroupingExample301_17@Div_GridPanel@H_301_17@
} @H_301_17@);
Ext.data.JsonStore
也是Store子类,目标是更方便的使用json对象做数据源
构造中多了fields,root,用法如下例所示
@H_301_17@/*@H_301_17@
这是使用远程对象,返回内容与下面本地对象的data一致
varstore=newExt.data.JsonStore({
url:'jsoncallback.js',
root:'rows',
fields:['id','name','occupation']
});
store.load();
@H_301_17@*/ @H_301_17@Ext.data.JsonStore( @H_301_17@{
data:@H_301_17@{@H_301_17@results@H_301_17@:301_17@rows@H_301_17@:[
@H_301_17@id@H_301_17@Bill301_17@Gardener@H_301_17@Ben@H_301_17@Horticulturalist@H_301_17@
]}root:301_17@]
} @H_301_17@)
@H_301_17@目前请先略过gridpanel,以后再说 @H_301_17@200301_17@350@H_301_17@620@H_301_17@ArrayGrid@H_301_17@);
这是使用远程对象,返回内容与下面本地对象的data一致
varstore=newExt.data.JsonStore({
url:'jsoncallback.js',
root:'rows',
fields:['id','name','occupation']
});
store.load();
@H_301_17@*/ @H_301_17@Ext.data.JsonStore( @H_301_17@{
data:@H_301_17@{@H_301_17@results@H_301_17@:301_17@rows@H_301_17@:[
@H_301_17@id@H_301_17@Bill301_17@Gardener@H_301_17@Ben@H_301_17@Horticulturalist@H_301_17@
]}root:301_17@]
} @H_301_17@)
@H_301_17@目前请先略过gridpanel,以后再说 @H_301_17@200301_17@350@H_301_17@620@H_301_17@ArrayGrid@H_301_17@);
Ext.data.SimpleStore
从数组对象更方便的创建Store对象,
例