我已經構建了一個dojo 1.5數據網格+ dojox.data.JsonRestStore。當網格渲染時,我可以看到「胡蘿蔔」,它顯示排序已經開始,並且正在默認右列。但是,列的內容(字符串值 - 字段:'projectShortName',...見下面的代碼)實際上沒有排序。按降序/升序按鈕不會更改順序或行。他們基本上被鎖定了。我不知道爲什麼?在Dojo 1.5數據網格中排序不起作用
我對某些列關閉了列排序,對其他人使用canSort()關閉了列排序。我只有具有排序關閉列的調用格式化程序。我試圖讓所有的列可以排序,或者只是我真正想要的那一列。沒有骰子。
這裏是佈局/網格代碼: VAR佈局= [{ 字段: '_item', 名: '& NBSP', 格式化:selectFormatter, 寬度: '25像素' }, { 現場: '項目名稱', 名稱: '項目名稱', 寬度: '325px' }, { 場: 'projectShortName', 名稱: '簡稱', 寬度: '80px' }, { 場: 'projectAreaName', 名稱: 'RQM項目區域', 寬度: '175px' }, { 場: '_item', 名稱: '測試指南狀態', 寬度: '190px', 格式化:testCaseGenerationOptionFormatter }, { 字段: 'projectOwner', 名稱: '所有者', 寬度: '140px' }, { 字段: 'projectCreationTime', 名: '創建日期', 寬度:'100px' }, { field:'projectLastUpdateTime', name:'Last Modified Date', width:'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爲好。任何意見,將不勝感激! -Doug
嗨TedPrz,我試過上面的(使用===),它沒有工作。我認爲這個問題並不是嚴格意義上的問題。我已經能夠在正確的行上看到桌子頭上的排序「胡蘿蔔」,並且在我不想排序的行上沒有胡蘿蔔。所以我認爲那個代碼不是問題?問題在於排序是降序還是升序,順序不會改變,顯然不是按字母順序排列的。當然,我認爲這種排序應該是按字母順序的。 :) -Doug – Doug