我正在创建dojo网格,如下所示,我使用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();
});
插件本身没有这样做的能力,据我所知,所以我开始查看EnhancedGrid
本身的功能,并偶然发现grid.layout
中的功能moveColumn()
。文档本身(这里)并不是很有用,但我使用它将每个列向前移动一个位置,以便第一列将成为最后一列。
我还制作了一个工作的JSFiddle来演示,您可以在这里看到它。移动列的代码可以在代码的底部找到:
for (var i = 1;i < grid.layout.cells.length;i++) {
grid.layout.moveColumn(1, 1, i, i-1, grid.layout);
}
它所做的是:它从索引1开始移动每个列,所以这意味着除了间接选择列之外的所有列都向前一步(i-1
)。