Я построил доджо 1.5 datagrid + dojox.data.JsonRestStore. Когда рендеринг сетки, я вижу «морковку», которая показывает, что сортировка уволилась и находится по умолчанию в правильном столбце. Однако содержимое столбца (строковые значения - поле: «projectShortName», ... см. Код ниже) фактически не сортируются. Нажатие кнопки нисходящего/восходящего не изменяет порядок или строки. Они по сути заперты. Я не уверен, почему?Сортировка в Dojo 1.5 datagrid не работает
У меня сортировка столбцов отключена для определенных столбцов и для других с помощью canSort(). У меня есть только формы для звонков с столбцами, у которых сортировка отключена. Я попытался сделать все столбцы отсортированными или только теми, которые я действительно хотел. Нет кубиков.
Вот макет/код сетки: макета переменная = [{ поле: '_item', имя: '& NBSP', форматировщик: selectFormatter, ширина: '25px' }, { поле: 'Projectname', название: 'название проекта', ширина: '325px' }, { поле: 'projectShortName', название: 'Краткое имя', ширина: '80px' }, { поле: 'projectAreaName', название: 'RQM Площадь проекта', ширина: '175px' }, { поле: '_item', название: 'Руководство Test Status', ширина: '190px', форматировщик: testCaseGenerationOptionFormatter }, { поле: 'projectOwner', имя: 'Владелец', ширина: '140px' }, { поле: 'projectCreationTime', название: 'Дата создания', ширина: '100px' }, { Поле: 'projectLastUpdateTime', имя: '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