【解决方案】Ext.grid.CheckboxSelectionModel 实现锁住指定行不被选中
2016-12-30 19:55
676 查看
效果图1:
注:如图,要对 sm 为 CheckboxSelectionModel 类型的 grid 实现指定行锁住而不被选中,锁住的条件由该行的某一字段的数据决定,图中根据“状态”决定改行能否被选中。
实现方法(js中对这个 grid 的 sm 属性做配置):
sm:new Ext.grid.CheckboxSelectionModel({
checkOnly:true,
listeners:{
beforerowselect:function(sm,rowIndex,keepExisting,record){
if (record.data.status == "startCatalog"){
return false;
} else {
return true;
}
}
}
}),
注:其实就是在选中一行数据之前进行监听,那么监听的这个事件就是伟大的神奇的 beforerowselect
具体介绍如下图(api截图):
--------------------------------------------------------------------- 我是分割线 ---------------------------------------------------------------------
接下来,我们对页面视觉效果做些优化。
效果图2:
注:如图,(要对 sm 为 CheckboxSelectionModel 类型的 grid 实现指定行锁住而不被选中,锁住的条件由该行的某一字段的数据决定,图中根据“状态”决定改行能否被选中。)锁住的行样式改变,并且 checkbox 消失。对了!屏蔽该行的一切点击事件。
实现方法(js中对这个 grid 的 viewConfig 属性做配置):
viewConfig: {
forceFit: false,
getRowClass:function(record,index,rowParams,store){
if (record.data.status == "startCatalog") {
return "getRowClassLock";
}
}
},
(css 中 getRowClassLock ):
.getRowClassLock {
background-color: #f0f0f0;
pointer-events: none;
padding-left: 20px;
color: #999;
}
.getRowClassLock .x-grid3-td-checker {
display: none;
}
注:1、其实就是实现对表格指定行添加一个样式,那么这个的实现只需要用表格的 viewConfig这个属性进行操作即可,具体的操作方法可见api(下方截图)。
2、然后就是这个样式类(getRowClassLock)的实现,关键用到: pointer-events: none; 屏蔽鼠标点击事件 (详见 pointer-events: none——CSS实现禁用鼠标点击事件!巧妙解决ExtJs表格单行禁用功能!);然后就是对该类下面的 checkbox
进行 display: none; 隐藏对象。
注:如图,要对 sm 为 CheckboxSelectionModel 类型的 grid 实现指定行锁住而不被选中,锁住的条件由该行的某一字段的数据决定,图中根据“状态”决定改行能否被选中。
实现方法(js中对这个 grid 的 sm 属性做配置):
sm:new Ext.grid.CheckboxSelectionModel({
checkOnly:true,
listeners:{
beforerowselect:function(sm,rowIndex,keepExisting,record){
if (record.data.status == "startCatalog"){
return false;
} else {
return true;
}
}
}
}),
注:其实就是在选中一行数据之前进行监听,那么监听的这个事件就是伟大的神奇的 beforerowselect
具体介绍如下图(api截图):
--------------------------------------------------------------------- 我是分割线 ---------------------------------------------------------------------
接下来,我们对页面视觉效果做些优化。
效果图2:
注:如图,(要对 sm 为 CheckboxSelectionModel 类型的 grid 实现指定行锁住而不被选中,锁住的条件由该行的某一字段的数据决定,图中根据“状态”决定改行能否被选中。)锁住的行样式改变,并且 checkbox 消失。对了!屏蔽该行的一切点击事件。
实现方法(js中对这个 grid 的 viewConfig 属性做配置):
viewConfig: {
forceFit: false,
getRowClass:function(record,index,rowParams,store){
if (record.data.status == "startCatalog") {
return "getRowClassLock";
}
}
},
(css 中 getRowClassLock ):
.getRowClassLock {
background-color: #f0f0f0;
pointer-events: none;
padding-left: 20px;
color: #999;
}
.getRowClassLock .x-grid3-td-checker {
display: none;
}
注:1、其实就是实现对表格指定行添加一个样式,那么这个的实现只需要用表格的 viewConfig这个属性进行操作即可,具体的操作方法可见api(下方截图)。
2、然后就是这个样式类(getRowClassLock)的实现,关键用到: pointer-events: none; 屏蔽鼠标点击事件 (详见 pointer-events: none——CSS实现禁用鼠标点击事件!巧妙解决ExtJs表格单行禁用功能!);然后就是对该类下面的 checkbox
进行 display: none; 隐藏对象。
相关文章推荐
- 关于ext中使用 Ext.grid.CheckboxSelectionModel作为选择框如何保存选中记录的解决方法。
- extjs grid的Ext.grid.CheckboxSelectionModel默认选中解决方法
- [转]extjs grid的Ext.grid.CheckboxSelectionModel默认选中解决方法
- Ext.grid.CheckboxSelectionModel复选框设置某行不可以选中
- Ext的CheckboxSelectionModel默认选中
- Ext.grid.CheckboxSelectionModel
- Ext.grid.CheckColumn()与 Ext.grid.CheckboxSelectionModel() 的应用
- Ext的CheckboxSelectionModel默认选中
- Ext.grid.CheckboxSelectionModel状态设置
- Ext.grid.CheckboxSelectionModel()勾选不上
- Ext.grid.CheckboxSelectionModel
- Ext的CheckboxSelectionModel默认选中
- Ext中ext:CheckboxSelectionModel 的checkbox有时候不会去掉选中的方法
- ext使用了new Ext.grid.CheckboxSelectionModel()却还是单选框
- ExtJS 的 Grid中 如何让要让CheckboxSelectionModel 实现多选
- 【转】Ext的CheckboxSelectionModel默认选中
- Ext.grid.CheckboxSelectionModel去除全选框
- Ext中ext:CheckboxSelectionModel 的checkbox有时候不会去掉选中的方法
- 对DevExpress GridControl控件,实现通过checkbox选中时整行高亮
- Ext.grid 刷新后选中指定行