jQuery jqGrid TreeGrid не работает должным образом

У меня возникли проблемы с созданием 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]);
}

});

person Raul Agrait    schedule 24.03.2010    source источник
comment


Ответы (1)


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

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

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

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


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

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

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

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

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

person jitter    schedule 24.03.2010
comment
@jitter Да, я отметил Treegrid, когда загрузил файлы jqGrid (все проверил). Ваша ссылка не работает в том смысле, что это не древовидная сетка, а просто сетка. Также не работает сортировка. - person Raul Agrait; 24.03.2010
comment
Я знаю, что это не древовидная сетка, я имел в виду, что сетка, по крайней мере, отображается, но, конечно, она не работает и не является древовидной сеткой. Проверьте расширенный ответ для получения дополнительной информации - person jitter; 24.03.2010
comment
Спасибо за ответ. Если древовидную сетку можно использовать только для отображения статических данных, то я очень разочарован. - person Raul Agrait; 24.03.2010