【发布时间】:2015-08-02 07:17:47
【问题描述】:
我正在尝试使用带有 Tree 扩展名的 dgrid 来设置行的样式。为此,我按照https://github.com/SitePen/dgrid/issues/380 中的建议使用 aspect.after,如果您不使用 Tree 扩展,它会很好地工作。
但是对于 Tree 扩展,网格是在构造函数完成时渲染的,所以 aspect.after 没有效果。
我的代码是:
require([
'dojo/_base/declare',
'dgrid/OnDemandGrid',
'dgrid/Tree',
'dgrid/Keyboard',
'dgrid/Selection',
'dstore/Memory',
'dojo/aspect',
'dstore/Tree',
'dgrid/extensions/ColumnResizer',
'dojo/domReady!'
], function (declare,OnDemandGrid, tree, Keyboard, Selection, Memory,aspect,TreeStore,ColumnResizer) {
var dataStore = new (declare([ Memory, TreeStore ]))({ data: $jsonData });
var CustomGrid = declare([ OnDemandGrid, tree, Keyboard, Selection, ColumnResizer ]);
var columns = $jsonHeadTitles;
columns[0][0] = tree(columns[0][0]);
var grid = new CustomGrid({
className: 'dgrid-autoheight',
collection: dataStore.filter( { parent: 0 }),
columns: columns,
noDataMessage: 'Sin registros',
shouldExpand: function(){ return true; },
selectionMode: 'single',
cellNavigation: false,
formatterScope: { html: function(item){ return item; }}
}, '$nombre');
aspect.after(grid, 'renderRow', function(row, args) {
var object = args[0];
if (!empty(object.parent)) {
row.className += ' gridchildren';
}
return row;
});
grid.on('dgrid-error', function(event) {
console.error(event.error.message);
});
});
我们如何使用树扩展来设置行的样式?
问候,
【问题讨论】:
标签: tree dojo aspect-ratio dgrid