jQuery jqGrid TreeGrid не работает должным образом - PullRequest
1 голос
/ 24 марта 2010

У меня проблемы с построением jqGrid TreeGrid с использованием локальных данных. Этот метод прекрасно работает как обычная сетка, если вы закомментируете атрибуты treeGrid и ExpandColumn, но как только вы добавите их, чтобы попытаться сделать из них сетку дерева, он не создаст сетку дерева (он просто создает «нормальную» сетку). ), и это больше не сортирует должным образом.

Я гарантировал, что загрузил правильные файлы TreeGrid во время загрузки jqGrid.

jQuery(function(){

  var gridOptions = {
    datatype: "local",
    height: 250,
    colNames: ['Name', 'Type', 'Last Modified On', 'Last Modified By'],
    colModel: [{name: 'name', index: 'name', width: 200, sorttype: 'text'},
           {name: 'type', index: 'type', width: 200, sorttype: 'text'},
           {name: 'modifiedon', index: 'modifiedon', width: 200, sorttype: 'date'},
           {name: 'modifiedby', index: 'modifiedby', width: 200, sorttype: 'text'}],
    treeGrid: true,
    ExpandColumn: 'name',
    caption: "My Grid"
};

    jQuery("#treeGrid").jqGrid(gridOptions);

var gridData = [
    {name: "My File", type: "My File Type", modifiedon: "03/10/2010", modifiedby"Strong Sad", lft: "1", rgt: "8", level: "0"},
    {name: "One of Everything", type: "Word Document", modifiedon: "02/12/2009", modifiedby: "Strong Bad", lft: "2", rgt: "5", level: "0"},
    {name: "My Presentation", type: "PowerPoint", modifiedon: "01/23/2009", modifiedby: "The Cheat", lft: "3", rgt: "4", level: "0"}
];

for (var i = 0; i < gridData.length; i++) {
    jQuery("#treeGrid").jqGrid('addRowData', i + 1, gridData[i]);
}

});

1 Ответ

2 голосов
/ 24 марта 2010

В документации TreeGrid есть и другие предупреждения, и большинство из них, похоже, относятся к тому, что вы пытаетесь сделать.

  • В настоящее время добавление узлов с помощью addRowData не поддерживается.
  • Добавление узлов в настоящее время не поддерживается.
  • В настоящее время jqGrid может работать только с данными, возвращенными с сервера.

Кажется, что все эти три предупреждения относятся к вам. Вы используете addRowData, пытаетесь добавить узлы в «пустое» дерево и пытаетесь использовать локальные данные вместо «данных, возвращаемых с сервера».

Поэтому я советую вам создать образец, соответствующий примеру Treegrid реального мира (находится слева под заголовком «Новое в версии 3.5»)


Документация для TreeGrid, на которую вы ссылаетесь:

Чтобы использовать этот модуль, вы должны пометьте Treegrid при загрузке сетки. Для получения дополнительной информации обратитесь скачивать. Для разработчиков - это grid.treegrid.js в src каталог.

Ты это сделал? Включены ли соответствующие js-файлы для TreeGrid в ваши js-файлы для jqGrid?

У меня работает быстрое копирование / вставка вашего кода в jsbin

http://jsbin.com/afuza/edit (затем нажмите кнопку предварительного просмотра)

...