Как скрыть полный столбец в dgrid (gridFromHtml) на основе некоторого параметра времени выполнения? Давайте скажем, если значение параметра истинно, я должен иметь возможность отображать некоторый столбец, а если значение ложно, то я должен уметь скрыть тот же столбец.Скрыть столбец в dgrid динамически
ответ
Использование grid.styleColumn(columnId, css)
:
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;");
Должен думаю, что это будет работать
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);
Вопрос в отношении dGrid, а не dojox сетки. https://github.com/SitePen/dgrid –
styleColumn делает 98% того же самого, его можно установить, чтобы использовать braincells: p – mschr
Существует dgrid расширение называется ColumnHider, который позволяет передавать в колонке со свойством «скрытой».
require([
"dojo/_base/declare", "dgrid/OnDemandGrid", "dgrid/extensions/ColumnHider"
], function(declare, OnDemandGrid, ColumnHider) {
var grid = new(declare([OnDemandGrid, ColumnHider]))({
columns: {
col1: {
label: "Column 1",
hidden: true
},
col2: {
label: "Column 2",
unhidable: true
},
col3: "Column 3"
}
}, "grid");
// ...
});
Это также дает пользователю возможность скрывать свои собственные столбцы. Вы можете установить некоторые столбцы быть unhidable, как колонке 2 выше
Вы должны использовать toggleColumnHiddenState:
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
});
Было бы здорово, если бы был параметр, который вы могли бы передать самим столбцам, которые могли бы сделать они скрыты. есть ли там какая-либо документация по параметрам, которые вы можете пройти? – streetlight
Кроме того, я получаю сообщение об ошибке «Указана недопустимая или незаконная строка». Когда вы проходите мимо, вы видели это раньше? – streetlight