如何隐藏除最后一列之外的数据网格列
How to hide datagrid columns except for the last
这是预期的结果:http://rghost.net/39116974/image.png.因此,我们无法取消选中最后一个名为"标题"的项目。
提前谢谢。
Ext.grid.column.ColumnView
具有hideable
属性。
False可防止用户隐藏此列。
默认为:true
这个怎么样
for(var i=0; i< grid.columns.length - 1; i++)
grid.columns[i].hide();
在渲染网格之前,您可以找到最后一列,并将其hideable设置为false。
即:
myGrid.on( 'beforerender', function(){
myGrid.colModel = myGrid.getColumnModel();
myGrid.colModel.config[ myGrid.colModel.config.length - 1 ].hideable = false;
} );
如果你想隐藏除一个之外的所有内容,你需要查看Ext.grid.GridView的方法handleHdMenuClick(我在2.3、3.0、3.1 Ext版本中使用过它),你就会明白你需要为你的列使用fixed属性:
handleHdMenuClick : function(item){
var index = this.hdCtxIndex;
var cm = this.cm, ds = this.ds;
switch(item.id){
case "asc":
ds.sort(cm.getDataIndex(index), "ASC");
break;
case "desc":
ds.sort(cm.getDataIndex(index), "DESC");
break;
default:
index = cm.getIndexById(item.id.substr(4));
if(index != -1){
if(item.checked && cm.getColumnsBy(this.isHideableColumn, this).length <= 1){
this.onDenyColumnHide();
return false;
}
cm.setHidden(index, item.checked);
}
}
return true;
},
isHideableColumn : function(c){
return !c.hidden && !c.fixed;
},
但在2.x版本中使用的唯一区别是固定了属性,而在>3.x版本中则没有。您需要添加覆盖文件来修复此问题:
Ext.override(Ext.grid.GridView, {
handleHdMenuClick : function(item) {
var store = this.ds,
dataIndex = this.cm.getDataIndex(this.hdCtxIndex),
result = true;
switch (item.getItemId()) {
case 'asc':
store.sort(dataIndex, 'ASC');
break;
case 'desc':
store.sort(dataIndex, 'DESC');
break;
default:
result = this.handleHdMenuClickDefault(item);
}
return result;
},
handleHdMenuClickDefault: function(item) {
var colModel = this.cm,
itemId = item.getItemId(),
index = colModel.getIndexById(itemId.substr(4));
if (index != -1) {
if (item.checked && colModel.getColumnsBy(this.isHideableColumn, this).length <= 1) {
this.onDenyColumnHide();
return false;
}
colModel.setHidden(index, item.checked);
}
},
isHideableColumn : function(c) {
return !c.hidden && !c.fixed;
}
});
相关文章:
- 如何从自定义对话框编辑数据网格中的选定行
- dojox 数据网格不显示
- AngularJS中的可编辑数据网格
- 如何将网络数据网格的更改提交到会话
- 如何在asp.net中的用户定义的数据网格中使列可编辑
- 使用push复制数据网格结构
- 通过ID获取声明性dojo数据网格
- 将列设置为在EasyUI数据网格上按排序显示
- 插入数据并用新数据刷新数据网格后,关闭弹出窗口
- 如何隐藏除最后一列之外的数据网格列
- 在数据网格中的复选框单击时使用 Databinder.Eval
- 使用 AJAX 和 __doPostBack 在数据网格中 Asp.net 用户控件
- 删除数据网格 (Dojo) 和表 (数据网格) 的实例正确显示
- 响应式数据网格
- React.js和丰富的数据网格组件或至少是hack [2015]
- 在 DOJO 中隐藏数据网格的列
- Javascript/JQuery 数据网格,用于在数据表中显示/编辑/输入
- Dojo 增强型数据网格未填充 JsonRest 存储
- 在下拉列表中使用多个对象类型为数据网格提供筛选
- 动态地将值输入到网络数据网格行添加中