【发布时间】:2012-02-15 07:14:39
【问题描述】:
我已经构建了一个 dojo 1.5 数据网格 + dojox.data.JsonRestStore。当网格呈现时,我可以看到“胡萝卜”,它显示排序已触发并且默认右列。但是,列的内容(字符串值 - 字段:'projectShortName',...请参阅下面的代码)实际上并未排序。点击降序/升序按钮不会更改顺序或行。他们基本上被锁定了。我不知道为什么?
我使用 canSort() 为某些列关闭了列排序,并为其他列打开了列排序。我只有格式化程序用于带有关闭排序的列的调用。我尝试让所有列都可以排序,或者只让我真正想要的那一个。没有骰子。
这是布局/网格代码: 可变布局 = [{ 字段:'_item', 名称:' ', 格式化程序:选择格式化程序, 宽度:'25px' }, { 字段:“项目名称”, name: '项目名称', 宽度:'325px' }, { 字段:'projectShortName', name: '简称', 宽度:'80px' }, { 字段:'projectAreaName', name: 'RQM 项目区', 宽度:'175px' }, { 字段:'_item', name: '测试指南状态', 宽度:'190px', 格式化程序:testCaseGenerationOptionFormatter }, { 字段:“项目所有者”, 名称:'所有者', 宽度:'140px' }, { 字段:'projectCreationTime', name: '创建日期', 宽度:'100px' }, { 字段:'projectLastUpdateTime', name: '最后修改日期', 宽度:'120px' }];
dojo.empty(dojo.byId('workspaceGridContainer'));
if (dijit.byId("projectGrid")) {
dijit.byId("projectGrid").destroyRecursive();
}
// Create a new grid:
var grid = new dojox.grid.DataGrid({
id:'projectGrid',
onHide: dojo.hitch(this, function() {
dijit.byId("projectGrid").destroyRecursive();
}),
store: jsonStore,
clientSort: true,
autoHeight: true,
//sortInfo: "-2",
selectionMode: 'single',
rowsPerPage: '100',
structure: layout
},document.createElement('div'));
dojo.byId("workspaceGridContainer").appendChild(grid.domNode);
// Call startup, in order to render the grid:
grid.startup();
//var test = grid.setSortInfo(obj);
// Prevent sorting on column 1
grid.canSort = function(col){ if((Math.abs(col) == 1) || (Math.abs(col) == 5) || (Math.abs(col) == 6) || (Math.abs(col) == 7) || (Math.abs(col) == 8)) { return false; } else { return true; } };
var index = grid.getSortIndex();
if(index!=2) {
if(grid.canSort(2)){
grid.setSortIndex(2, false);
}
}
正如您所看到的,我也尝试过 sortInfo。任何意见,将不胜感激! -道格
【问题讨论】: