首先说说场景
因为是要做一个文件基于EXT的BS结构的文件选择器
要求是根据参数列出某一文件夹下面的文件信息,如果有子文件夹也要列出来,但是不能被选中
首先想到的是CheckboxSelectionModel肯定是继承了列模型,就想到了里面肯定也重写了renderer配置项于是找到Ext的CheckboxSelectionModel源文件查看了一下,
找到了以下代码:
renderer : function(v, p, record){
return '
';
}
果然找到了
于是就想到了覆盖renderer配置项了
代码如下:
var sm = new Ext.grid.CheckboxSelectionModel({
renderer:function(v,c,r){
if(r.get("t")==0){
return " ";
}else{
return '
';
}
}
我在列模型里配置了一个隐藏列t,主要是用来判断是文件还是文件夹,
添加beforerowselect 在选中之前触发的事件,return就不能选择了如果得到t的值是0的话,也就是说这个是一个文件夹,说返回一个空格
上一下效果图
果然前面的选项没有出来了
但是还是通过通过按Ctrl或Shift键来选择到列
看来只有通过添加事件来处理了
var sm = new Ext.grid.CheckboxSelectionModel({
renderer:function(v,c,r){
if(r.get("s")==0){
return " ";
}else{
return '
';
}
},
listeners:{
beforerowselect:function(s,n,k,r){
//判断是否为文件夹,如果是则返回false不能选中
if(r.get("s")==0){
return false;
}
}
}
Ext中CheckboxSelectionModel让其符合某一条件行不能被选中
最新推荐文章于 2022-07-01 12:16:01 发布