Не работает вложенная сортировка Dojo EnhancedGrid - PullRequest
2 голосов
/ 20 сентября 2010

Я пытаюсь создать расширенную сетку с вложенной функцией сортировки в 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.Спасибо

Ответы [ 3 ]

2 голосов
/ 22 сентября 2010

Похоже, что я решил эту проблему .... Я понял, что файл, который должен быть включен 'required', это: "dojox.grid.cells.dijit". Странно то, что я не нашел никаких указаний на то, что это было необходимо из документации, но случайно нашел это в примерах. Как только это было добавлено к моим обязательным утверждениям, я вложил сортировку. Может ли кто-нибудь объяснить это конкретное требование и его, казалось бы, решающее значение?

Спасибо

0 голосов
/ 29 сентября 2010

Должен быть дефект в более ранней версии, он работает для меня в 1.5, также связанная с этим тема на dojo forum

0 голосов
/ 22 сентября 2010

Только что попробовал с 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 (event {, но не думаю, что причина в том, чтоодиночная сортировка работает для вас.

Кстати, установка вложенного порядка сортировки по умолчанию с помощью grid.setSortInfo (-1) не поддерживается в 1.4 (в планах для 1.6)

...