我正在尝试在Dojo中创建具有嵌套排序功能的增强型网格,但是当我通过插件添加嵌套排序功能时,网格不再在页面中工作(显示)。我增强的网格创建代码如下:
dojo.require("dojox.grid.EnhancedGrid");
dojo.require("dojox.grid.enhanced.plugins.NestedSorting");
grid = new dojox.grid.EnhancedGrid({
canSort: function(colIndex) {
//colIndex = -colIndex; //make columns decend
if ((colIndex == colA) || (colIndex == colB)) {
return false;
}
return true;
},
onHeaderCellMouseOver:function(event{onGridHeaderCellMouseOver(event,layout[0]);},
onHeaderCellMouseOut: function(event){onGridHeaderCellMouseOut(event,layout[0]);},
store: msgStore,
structure: layout,
plugins: {nestedSorting: true}
},document.createElement("div"));
dojo.byId("TableHolder").appendChild(grid.domNode);
grid.startup();
grid.setSortInfo(-1);
如果我注释掉插件行,那么它将完美地工作,没有嵌套排序。有谁知道我将如何获得嵌套排序功能? 我正在使用Dojo 1.4。 感谢
答案 0 :(得分:2)
好像我已经解决了这个问题....我发现必须包含'必需'的文件是:“dojox.grid.cells.dijit”。奇怪的是,我没有发现文档中有必要这样做,但确实碰巧在示例中找到了它。一旦将其添加到我所需的语句中,我就进行了嵌套排序。有人可以解释这个具体要求及其看似至关重要的要求吗?
谢谢
答案 1 :(得分:0)
只是快速尝试1.4.3,似乎相同的代码适用于我:
dojo.addOnLoad(function(){
var grid = new dojox.grid.EnhancedGrid({
id:'grid',
canSort: function(colIndex) {
if ((colIndex == 0) || (colIndex == 1)) {
return false;
}
return true;
},
onHeaderCellMouseOver:function(event)onGridHeaderCellMouseOver(event,layout[0]);},
onHeaderCellMouseOut: function(event)onGridHeaderCellMouseOut(event,layout[0]);},
store: csvStore1,
structure: layout,
plugins : {nestedSorting: true}
}, document.createElement("div"));
dojo.byId("gridDiv").appendChild(grid.domNode);
grid.startup();
grid.setSortInfo(-1); });
你的onHeaderCellMouseOver:function(事件{,但不认为这是因为单一排序适合你的原因。
BTW,1.4中不支持通过grid.setSortInfo(-1)设置默认嵌套排序顺序(它在1.6的计划中)
答案 2 :(得分:0)
在早期版本中应该是缺陷,它在1.5中适用于我,也是dojo forum的相关主题