我正在创建dojo Grid,如下所示,我使用indirectSelection插件创建一个复选框,如下所示,但默认情况下,复选框将出现在网格的第一列。我怎样才能让它出现在最后一栏?
var grid = new dojox.grid.EnhancedGrid({
id: 'serialsGrid',
style: 'width:auto;height:250px;',
store: store,
structure: layout,
rowSelector: '20px',
plugins: {
indirectSelection: {name:'Requested',headerSelector:true, width:"40px", styles:"text-align: center;"},
pagination: {
pageSizes: ["25", "50", "100", "All"],
description: true,
sizeSwitch: true,
pageStepper: true,
gotoButton: true,
/*page step to be displayed*/
maxPageStep: 4,
/*position of the pagination bar*/
position: "bottom"
}
}
}, document.createElement('div'));
/*append the new grid to the div*/
//var temp=grid.domNode;
dojo.byId("serialsGridDiv").appendChild(grid.domNode);
/*Call startup() to render the grid*/
serialsGridCopy=grid;
grid.startup();
});
答案 0 :(得分:1)
据我所知,插件本身没有这样做的能力所以我开始查看EnhancedGrid
本身所具有的功能,偶然发现moveColumn()
中的函数grid.layout
。
文档本身(here)并不是很有用,但我用它将每一列向前移动一个位置,以便第一列成为最后一列。
我还制作了一个有效的JSFiddle来演示你可以看到here。移动列的代码可以在代码的底部找到:
for (var i = 1;i < grid.layout.cells.length;i++) {
grid.layout.moveColumn(1, 1, i, i-1, grid.layout);
}
它的作用如下:它从索引1开始移动每一列,这意味着除了indirectSelection列之外的所有列都提前一步(i-1
)。