GridPanel中getSelectionModel详解
2016-02-24 10:38
525 查看
本文导读:Ext.grid.GridPanel继承自Panel,其xtype为grid,包括了排序、缓存、拖动、隐藏某一列、自动显示行号、列汇总、单元格编辑等实用功能。 当我们需要获取选择的数据时,就需要用到getSelectionModel方法。下面介绍GridPanel中getSelectionModel的操作。
一、Ext.grid.GridPanel
主要配置项:
store:表格的数据集
columns:表格列模式的配置数组,可自动创建ColumnModel列模式
autoExpandColumn:自动充满表格未用空间的列,参数为列id,该id不能为0
stripeRows:表格是否隔行换色,默认为false
cm、colModel:表格的列模式,渲染表格时必须设置该配置项
sm、selModel:表格的选择模式,默认为Ext.grid.RowSelectionModel
enableHdMenu:是否显示表头的上下文菜单,默认为true
enableColumnHide:是否允许通过标题中的上下文菜单隐藏列,默认为true
loadMask:是否在加载数据时显示遮罩效果,默认为false
view:表格视图,默认为Ext.grid.GridView
viewConfig:表格视图的配置对象
autoExpandMax:自动扩充列的最大宽度,默认为1000
autoExpandMin:自动扩充列的最小宽度,默认为50
columnLines:是否显示列分割线,默认为false
disableSelection:是否禁止行选择,默认为false
enableColumnMove:是否允许拖放列,默认为true
enableColumnResize:是否允许改变列宽,默认为true
hideHeaders:是否隐藏表头,默认为false
maxHeight:最大高度
minColumnWidth:最小列宽,默认为25
trackMouseOver:是否高亮显示鼠标所在的行,默认为true
主要方法:
getColumnModel():取得列模式
getSelectionModel():取得选择模式
getStore():取得数据集
getView():取得视图对象
reconfigure( Ext.data.Store store, Ext.grid.ColumnModel colModel ):使用一个新的数据集和列模式重新配置表格组件
二、getSelectionModel获取选择的行可以进行如下操作
JScript 代码 复制
2. model.selectAll();//选择所有行
3. model.selectFirstRow();//选择第一行
4. model.selectLastRow([flag]);//选择最后一行,flag为正的话保持当前已经选中的行数,不填则默认false
5. model.selectNext();//选择下一行
6. model.selectPrevious();//选择上一行
7. model.selectRange(tartRow,ndRow, [Boolean keepExisting] );//选择范围间的行
8. model.selectRow(row);//选择某一行
9. model.selectRows(rows);//选择指定一些行,传递数组如[1,3,5],则分别选择1,3,5行
10.
11.
12. model.clearSelections();//清空所有选择
13. model.deselectRange( startRow, endRow );//取消从startrow到endrow的记录的选择状态
14. model.deselectRow(row);//取消指定行的记录
var value = record.get("field_name");
});
store 中each()方法的使用应在load完使用,确切的说应该在on('load')事件中使用,
不懂就看一下下面的例子吧!。。。
//获得store,这里假如store里有3条记录。
var i = 0;
var ds = grid.getStore();
\\
//以下是正确与不正确的例子
1)错误例子
ds.each(function(rec)
{ i++; }
);
result : i = 0;//表明each没有执行或此方法在数据加载前执行(后者的可能行更大)
2)正确例子
ds.on('load',function(store,records){
store.each(function(rec)
{ i++; }
);
});
result: i = 3;
下面看一下如何使grid中的checkBox为选中状态
var sm = grid.getSelectionModel();//get the seletion model
ds.on('load',function(store,records){
store.each(function(rec) {
//判断条件
if(....)
{ sm.selectRecords([rec]); }
);
});
一、Ext.grid.GridPanel
主要配置项:
store:表格的数据集
columns:表格列模式的配置数组,可自动创建ColumnModel列模式
autoExpandColumn:自动充满表格未用空间的列,参数为列id,该id不能为0
stripeRows:表格是否隔行换色,默认为false
cm、colModel:表格的列模式,渲染表格时必须设置该配置项
sm、selModel:表格的选择模式,默认为Ext.grid.RowSelectionModel
enableHdMenu:是否显示表头的上下文菜单,默认为true
enableColumnHide:是否允许通过标题中的上下文菜单隐藏列,默认为true
loadMask:是否在加载数据时显示遮罩效果,默认为false
view:表格视图,默认为Ext.grid.GridView
viewConfig:表格视图的配置对象
autoExpandMax:自动扩充列的最大宽度,默认为1000
autoExpandMin:自动扩充列的最小宽度,默认为50
columnLines:是否显示列分割线,默认为false
disableSelection:是否禁止行选择,默认为false
enableColumnMove:是否允许拖放列,默认为true
enableColumnResize:是否允许改变列宽,默认为true
hideHeaders:是否隐藏表头,默认为false
maxHeight:最大高度
minColumnWidth:最小列宽,默认为25
trackMouseOver:是否高亮显示鼠标所在的行,默认为true
主要方法:
getColumnModel():取得列模式
getSelectionModel():取得选择模式
getStore():取得数据集
getView():取得视图对象
reconfigure( Ext.data.Store store, Ext.grid.ColumnModel colModel ):使用一个新的数据集和列模式重新配置表格组件
二、getSelectionModel获取选择的行可以进行如下操作
JScript 代码 复制
var model = grid.getSelectionModel(); model.selectAll();//选择所有行 model.selectFirstRow();//选择第一行 model.selectLastRow([flag]);//选择最后一行,flag为正的话保持当前已经选中的行数,不填则默认false model.selectNext();//选择下一行 model.selectPrevious();//选择上一行 model.selectRange(tartRow,ndRow, [Boolean keepExisting] );//选择范围间的行 model.selectRow(row);//选择某一行 model.selectRows(rows);//选择指定一些行,传递数组如[1,3,5],则分别选择1,3,5行 model.clearSelections();//清空所有选择 model.deselectRange( startRow, endRow );//取消从startrow到endrow的记录的选择状态 model.deselectRow(row);//取消指定行的记录 grid.getSelected().id //得到选中的行的标识 var getSelect=function (grid, col) { //获取选中grid的列 var st=""; for (var i = 0; i < grid.getSelectionModel().getSelections().length; i++) { st+=grid.getSelectionModel().getSelections()[i].get("'"+col+"'")+","; } }
grid.getSelectionModel的所有操作
1. var model = grid.getSelectionModel();2. model.selectAll();//选择所有行
3. model.selectFirstRow();//选择第一行
4. model.selectLastRow([flag]);//选择最后一行,flag为正的话保持当前已经选中的行数,不填则默认false
5. model.selectNext();//选择下一行
6. model.selectPrevious();//选择上一行
7. model.selectRange(tartRow,ndRow, [Boolean keepExisting] );//选择范围间的行
8. model.selectRow(row);//选择某一行
9. model.selectRows(rows);//选择指定一些行,传递数组如[1,3,5],则分别选择1,3,5行
10.
11.
12. model.clearSelections();//清空所有选择
13. model.deselectRange( startRow, endRow );//取消从startrow到endrow的记录的选择状态
14. model.deselectRow(row);//取消指定行的记录
extjs获取Grid中某一行某一列的值
选中某一行,var record = grid.getSelectionModel().getSelection(); 一行的所有数据都在record里面 具体某一列:record.get("列名-dataIndex")
extjs获取store的值
grid.getStore().each(function(record){var value = record.get("field_name");
});
store 中each()方法的使用应在load完使用,确切的说应该在on('load')事件中使用,
不懂就看一下下面的例子吧!。。。
//获得store,这里假如store里有3条记录。
var i = 0;
var ds = grid.getStore();
\\
//以下是正确与不正确的例子
1)错误例子
ds.each(function(rec)
{ i++; }
);
result : i = 0;//表明each没有执行或此方法在数据加载前执行(后者的可能行更大)
2)正确例子
ds.on('load',function(store,records){
store.each(function(rec)
{ i++; }
);
});
result: i = 3;
下面看一下如何使grid中的checkBox为选中状态
var sm = grid.getSelectionModel();//get the seletion model
ds.on('load',function(store,records){
store.each(function(rec) {
//判断条件
if(....)
{ sm.selectRecords([rec]); }
);
});
相关文章推荐
- Struts配置详解
- 翻翻git之---一个丰富的通知工具类 NotifyUtil
- Ember笔记
- D. Babaei and Birthday Cake--- Codeforces Round #343 (Div. 2)
- Wind7 64位配置安卓环境
- 给第三方dll加上强命名的方法[C#]
- activity 嵌套一级fragment,一级fragment嵌套二级fragment,在一级fragment中刷新二级fragment中的UI
- 蓝桥杯第四届预赛2马虎的算式
- IDEA将web项目打成war包
- getHibernateTemplate().get()方法只能按照主键来查询
- 如何在Unity 3D中设置Google AdMod
- 利用SolrJ操作solr API完成index操作
- Spring3 MVC 深入研究
- IOS 获取deviceToken
- loadComplete gridComplete jqGrid一直loading
- 感悟总结
- QT Creator 两种创建项目的方法
- for_each函数用法
- Exception in thread "Timer-2" java.lang.OutOfMemoryError: Java heap space
- ProductHunt:创业公司产品猎场和秀场