我正在尝试在 Dojo 工具包中做一个解决方法,你不能通过添加一个只有宽度的虚拟行来在第一行做一个 colspan。创建行后,将使用 onBeforeRow 隐藏该行。
请参考以下内容作为参考。
-
道场错误报告
-
Dojo-Grid-header-column-grouping
这是我的代码:
ConfirmGridGrid = new DataGrid({
store: ConfirmGridDataStore,
structure: [
[
{ width: '35px'}
,{ width: '35px'}
,{ width: '60px'}
,{ width: '60px'}
,{ width: '60px'}
,{ width: '60px'}
,{ width: '25px'}
,{ width: '25px'}
,{ width: '40px'}
,{ width: '25px'}
,{ width: '25px'}
,{ width: '25px'}
,{ width: '240px'}
,{ width: '25px'}
],[
{ name: 'Product Code', field: 'ProductCD', width: '70px', colSpan: 2, editable: false}
,{ name: 'Product Name', field: 'ProductNM', width: '240px', colSpan: 4, editable: false}
// The rest of second column..............................
],[
// Third column..............................
]
],
onBeforeRow: function(inDataIndex, inSubRows){
inSubRows[0].invisible = true;
}
}, "ConfirmGrid");
ConfirmGridGrid.startup();
由于某种原因,未调用 onBeforeRow 事件。有什么需要补充的吗?还是需要执行其他事件连接才能使其工作?顺便说一下,我正在使用 Dojo 1.9.1。
我最终发现了为什么它没有被调用。我把它放在错误的地方。
我应该将其作为结构值的属性而不是网格定义。
希望这对以后对其他人有所帮助。
structure: [
[
{ width: '35px'}
,{ width: '35px'}
,{ width: '60px'}
,{ width: '60px'}
,{ width: '60px'}
,{ width: '60px'}
,{ width: '25px'}
,{ width: '25px'}
,{ width: '40px'}
,{ width: '25px'}
,{ width: '25px'}
,{ width: '25px'}
,{ width: '240px'}
,{ width: '25px'}
],[
{ name: 'Product Code', field: 'ProductCD', width: '70px', colSpan: 2, editable: false}
,{ name: 'Product Name', field: 'ProductNM', width: '240px', colSpan: 4, editable: false}
// The rest of second column..............................
],[
// Third column..............................
],
,onBeforeRow: function(inDataIndex, inSubRows){
inSubRows[0].invisible = true;
}
],
同样,在我的情况下,将其设置为不可见是不够的。 您需要更改 CSS 以删除填充和边框。
tr.dojoxGridInvisible th
{
padding: 0px !important;
border: 0px !important;
}
tr.dojoxGridInvisible td
{
padding: 0px !important;
border: 0px !important;
}
引导我找到答案的示例代码是这个邮件列表。