一、?设置行号
???行号的设置主要问题在于删除某一行后需要重新计算行号
??Ext.onReady(function()?{
?????????var?cm?=?new?Ext.grid.ColumnModel([
?????????????????????new?Ext.grid.RowNumberer(),???????????--在这里设置行号
????????????????????{?header:?'编号',?dataIndex:?'id'?},
????????????????????{?header:?'性别',?dataIndex:?'sex'?},
????????????????????{?header:?'名称',?dataIndex:?'name'?},
????????????????????{?header:?'描述',?dataIndex:?'descn'?}
?????????????????]);
?????????var?data?=?[
????????????????????????['1',?'male',?'name1',?'descn1'],
????????????????????????['2',?'female',?'name2',?'descn2'],
????????????????????????['3',?'male',?'name3',?'descn3'],
????????????????????????['4',?'female',?'name4',?'descn4'],
????????????????????????['5',?'male',?'name5',?'descn5']
????????????????????];
?????????var?store?=?new?Ext.data.Store({
?????????????????????????proxy:?new?Ext.data.MemoryProxy(data),
?????????????????????????reader:?new?Ext.data.ArrayReader({},?[
????????????????????????????????????{?name:?'id'?},
????????????????????????????????????{?name:?'sex'?},
????????????????????????????????????{?name:?'name'?},
????????????????????????????????????{?name:?'descn'?}
????????????????????????????????])
????????????????????????????????});
??????????????????????
?????????store.load();
?????????var?grid?=?new?Ext.grid.GridPanel({
?????????????autoHeight:?true,
?????????????renderTo:?'grid',
?????????????store:?store,
?????????????cm:?cm
?????????});
?????????Ext.get('remove').on('click',?function()?{???--监听删除按钮的单击事件
?????????????store.remove(store.getAt(1));????????????--store.getAt(1)?获得第2行数据
?????????????grid.view.refresh();?????????????????????--强制grid刷新,重新计算行号
?????????});
?????});
页面代码:
?<body>
????????<div?id="grid"></div>
????????<input?id="remove"?type="button"?value="删除第二行数据"?/>
</body>
二、?设置复选框
?复选框是通过Ext.grid.CheckboxSelectionModel来设置的,它会在每行数据前加一个复选框,另外它必须添加到列定义和表格装配定义2个部分。默认单击表格的某一行,复选框就会自动选中。可以通过如下设置取消单击即选中,而需要通过单击复选框来选中:
??var?sm?=?Ext.grid.CheckboxSelectionModel({?handleMouseDown:?Ext.emptyFn?});???
复选框设置代码:
?Ext.onReady(function()?{
?????????var?sm?=?Ext.grid.CheckboxSelectionModel();???
?????????var?cm?=?new?Ext.grid.ColumnModel([
?????????????????????new?Ext.grid.RowNumberer(),???????????--在这里设置行号
?????????????????????sm,???????????????????????????????????--设置复选框//不添加这项 就不会显示单选了
????????????????????{?header:?'编号',?dataIndex:?'id'?},
????????????????????{?header:?'性别',?dataIndex:?'sex'?},
????????????????????{?header:?'名称',?dataIndex:?'name'?},
????????????????????{?header:?'描述',?dataIndex:?'descn'?}
?????????????????]);
?????????var?data?=?[
????????????????????????['1',?'male',?'name1',?'descn1'],
????????????????????????['2',?'female',?'name2',?'descn2'],
????????????????????????['3',?'male',?'name3',?'descn3'],
????????????????????????['4',?'female',?'name4',?'descn4'],
????????????????????????['5',?'male',?'name5',?'descn5']
????????????????????];
?????????var?store?=?new?Ext.data.Store({
?????????????????????????proxy:?new?Ext.data.MemoryProxy(data),
?????????????????????????reader:?new?Ext.data.ArrayReader({},?[
????????????????????????????????????{?name:?'id'?},
????????????????????????????????????{?name:?'sex'?},
????????????????????????????????????{?name:?'name'?},
????????????????????????????????????{?name:?'descn'?}
????????????????????????????????])
????????????????????????????????});
??????????????????????
?????????store.load();
?????????var?grid?=?new?Ext.grid.GridPanel({
?????????????autoHeight:?true,
?????????????renderTo:?'grid',
?????????????store:?store,
?????????????cm:?cm,
?????????????sm:sm
?????????});
?????});
三、选择模型
(1).RowSelectionModel?模型
????在定义Ext.grid.GridPanel时,默认使用的是RowSelectionModel――行选择模型,当单击某一个单元格时,默认选中的是却是整行,选择模型默认
支持多选,鼠标单击时按住Shift或Ctrl键就可以选择多行。如果只希望选择一行,需要设置singleSelect参数。
(2).CellSelectionModel模型
????每次只允许选择一个单元格,EditorGrid里默认使用的就是CellSelectionModel.?当然也可以将EditorGrid的选择模型设置为RowSelectionModel,
从而达到选中一整行的效果。
(3).获取选中的行
??Ext.get('remove').on('click',?function()?{
?????????????var?selections?=?grid.getSelectionModel().getSelections();????--先获取选择模型,然后从选择模型中获取选中的记录。
?????????????if?(selections.length?>?0)?{
?????????????????Ext.Msg.confirm('提示',?'你确认删除选中的记录吗?',?function(_btn)?{
?????????????????????if?(_btn?==?'yes')?{
?????????????????????????for?(var?i?=?0;?i?<?selections.length;?i++)?{
?????????????????????????????var?record?=?selections;
?????????????????????????????store.remove(record);
?????????????????????????}
?????????????????????????grid.view.refresh();
?????????????????????}
?????????????????});
详细解决方案
ExtJS报表――行号、复选框、选择模型
热度:224 发布时间:2012-08-21 13:00:22.0
相关解决方案
- Extjs grid 失去选中行的列数据
- extjs 后台有数据,但是返回到页面为空,jsonStore加载错误,这是咋回事
- S2SH、EXTJS、JSON调整后,EXTJS接收不到Struts2的Action传回的值,无语
- extjs 简单有关问题
- extjs+struts2解决办法
- ExtJs 处理 datetime 有关问题
- 【EXTJS】iframe里嵌套ext.window,怎样使ext.window弹出到iframe外,该怎么解决
- Tomcat + extjs 入门有关问题
- extjs ColumnModel 怎么实现表格中的数据小数点对齐
- Extjs 变量前的一个加号代表什么意思?解决方法
- extjs grid 怎么实现 行选中变色
- ExtJs 提交表单的小疑点
- 自己写的Asp.net Ajax,Jquery,ExtJs 三种Ajax技术框架比较,希望大家提提意见,多谢
- EXTJS grid的getView的refresh步骤报this.grid为空或不是对象
- EXTJS grid的getView的refresh方法报this.grid为空或不是对象解决办法
- Extjs 上拉菜单如何实现拼音输入进行检索
- ExtJs ComboBox 上拉数据较多时,怎么提供模糊搜索
- extjs grid.Panel 局部刷新,该如何处理
- extjs window 弹出框有关问题 怪事
- ExtJs ComboBox 下拉数据较多时,怎么提供模糊搜索
- 英语翻译(extjs 中的Ext.Component)解决方案
- Extjs Ext.data.Store使用有关问题
- ExtJs Combobox绑值有关问题
- EXTJS GridPanel怎么设置多选
- EXTJS 在 IE 中 数据丢失。求解决方法。
- extjs grid 动态设置行单元格可编辑
- EXTJS DateField 效果显示解决方法
- Extjs Menu 实现动态多级菜单
- extjs grid.Panel 局部刷新,该如何处理
- ExtJs ComboBox 上拉数据较多时,怎么提供模糊搜索