Dojo 动态隐藏dgrid中的列
如何基于某个运行时参数在dgrid(gridFromHtml)中隐藏完整的列?Dojo 动态隐藏dgrid中的列,dojo,dgrid,Dojo,Dgrid,如何基于某个运行时参数在dgrid(gridFromHtml)中隐藏完整的列? 如果参数值为true,我应该能够显示某个列,如果值为false,那么我应该能够隐藏同一列。应该认为这会起作用 var grid = new dojox.grid.DataGrid({ store: dataStore, structure: [{ name: "ID", field: "id", width: "100px" }, {
如果参数值为true,我应该能够显示某个列,如果值为false,那么我应该能够隐藏同一列。应该认为这会起作用
var grid = new dojox.grid.DataGrid({
store: dataStore,
structure: [{
name: "ID",
field: "id",
width: "100px"
}, {
name: "Values",
field: "values",
width: "100px"
}]
}, "myGrid");
grid.startup();
function showOrHideColumn(show, widget, index) {
var d = show ? "" : "none"
dojo.query('td[idx="'+index+'"]', widget.viewsNode).style("display", d);
dojo.query('th[idx="'+index+'"]', widget.viewsHeaderNode).style("display", d);
}
showOrHideColumn(false,grid,0);
使用grid.styleColumn(columnId,css)
:
有一个名为ColumnHider的dgrid扩展,允许您传入具有“hidden”属性的列
需要([
“dojo/_base/declare”、“dgrid/OnDemandGrid”、“dgrid/extensions/ColumnHider”
],函数(声明、OnDemandGrid、ColumnHider){
var grid=new(声明([OnDemandGrid,ColumnHider]))({
栏目:{
第1栏:{
标签:“第1列”,
隐藏:真的
},
第2栏:{
标签:“第2列”,
不可回避的:真的
},
第3栏:“第3栏”
}
}“网格”);
// ...
});代码>您需要使用:
问题在于dGrid,而不是dojox网格。styleColumn做了98%相同的事情,设置脑细胞使用是可以的:如果有一个参数可以传递给列本身,让它们隐藏起来,那就太好了。你能传递的参数有没有文档?还有,我得到了一个错误“指定了无效或非法的字符串”。当传递东西时--你以前见过这个吗?有没有其他方法不使用ColumnHider功能,但只需隐藏可重用网格的特定列,并将其提供给用户,而无需用户查看/隐藏columnstoggleColumnHiddenState:函数(id,hidden)的任何选项。看起来它需要的是id,而不是名称。
var grid = new Grid({
store: store,
columns: [
{ id: "artist", label: "Artist", field: "Artist"},
{ id: "name", label: "Song", field: "Name"},
{ id: "gerne", label: "Genre", field: "Genre"}
]
}, "grid-placeholder");
// to hide column with id="name"
grid.styleColumn("name", "display: none;");
// to show it
grid.styleColumn("name", "display: table-cell;");
require([
'dojo/_base/declare',
'dgrid/OnDemandGrid',
'dgrid/extensions/ColumnHider'
], function (declare, OnDemandGrid, ColumnHider) {
var grid = new (declare([ OnDemandGrid, ColumnHider ]))({
columns: {
'id': {label: '#'},
'name': {label: 'Название'}
}
}, 'grid');
grid.toggleColumnHiddenState('name', true); // hiding
grid.toggleColumnHiddenState('name', false); // showing
grid.toggleColumnHiddenState('name'); // toggling column
});