博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ext.data-GroupingStore/JsonStore/SimpleStore
阅读量:2780 次
发布时间:2019-05-13

本文共 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/

你可能感兴趣的文章
0.11版linux文件系统(三)
查看>>
0.11版linux文件系统(二)
查看>>
0.11版linux文件系统(一)
查看>>
树型结构的基本概念
查看>>
Linux以树的结构组织所有目录,图解Linux的目录结构
查看>>
线程池的7种创建方式,强烈推荐你用它...
查看>>
Java 实现滑动时间窗口限流算法,你见过吗?
查看>>
Spring Boot + Freemarker 中的弯弯绕!
查看>>
在线工具
查看>>
前段jquery.cookie.js使用介绍
查看>>
解决jefft:run启动内存溢出的问题
查看>>
Freemark----基本数据类型(对象)
查看>>
freemark-----------list(list,map遍历)
查看>>
freemark--宏定义
查看>>
Mybatis报错----result Map
查看>>
maven热部署插件-jetty
查看>>
一个很好的滚动条插件jquery.slimscroll.js
查看>>
MyBatis实现最基本的Cred
查看>>
MyBatis的分页插件介绍
查看>>
如何用C++写一个Singleton 单例模式
查看>>