jqGrid инициализируется пустым при использовании данных JSON

Я бродил по разным форумам и читал несколько вопросов, связанных с переполнением стека, связанных с этой проблемой, но я не могу понять, что не так.

Я пытаюсь создать jqGrid treeGrid, используя следующий код:

      jQuery("#structureBuilderTable").jqGrid({
        url: 'tree.json',
        datatype:'json',
        mtype:'GET',
        colNames: ["ID", "Description", "Total"],
        colModel: [
        {name:'id', index:'id', width: 1, hidden: true, key: true},
        {name:'desc', index:'desc', hidden: false, sortable: true},
        {name:'num', index:'num', hidden: false, sortable: true}
        ],
        treeGridModel:'adjacency',
        height:'auto',
        width:'500',
        pager:"#ptreegrid",
        treeGrid: true,
        ExpandColumn:'desc',
        ExpandColClick: true,
        caption:"TreeGrid Test"
      });

Это мой файл .json (для примера):

{
    "total": "1",
    "page": "1",
    "records": "2",
    "rows": [
           {"id": "1", "cell": ["1", "Super Item", "300", "0", "null", "false", "false"]},
           {"id": "2", "cell": ["2", "Item 1", "100", "1", "1", "false", "false"]},
           {"id": "3", "cell": ["3", "Sub Item 1", "50", "2", "2", "true", "true"]},
           {"id": "4", "cell": ["4", "Sub Item 2", "25", "2", "2", "false", "false"]},
           {"id": "5", "cell": ["5", "Sub-sub Item 1", "25", "3", "4", "true", "true"]},
           {"id": "6", "cell": ["6", "Sub Item 3", "25", "2", "2", "true", "true"]},
           {"id": "7", "cell": ["7", "Item 2", "200", "1", "1", "false", "false"]},
           {"id": "8", "cell": ["8", "Sub Item 1", "100", "2", "7", "false", "false"]},
           {"id": "9", "cell": ["9", "Sub-sub Item 1", "50", "3", "8", "true", "true"]},
           {"id": "10", "cell": ["10", "Sub-sub Item 2", "50", "3", "8", "true", "true"]},
           {"id": "11", "cell": ["11", "Sub Item 2", "100", "2", "7", "true", "true"]}
    ]
}

(это в значительной степени прямая копия руководства, которое я нашел в Интернете).

Теперь сетка создана, но не содержит никаких данных. Файл javascript находится в том же каталоге, что и «tree.json», но почему-то не находит его. Я использовал следующее для целей отладки:

loadError: функция (xhr, статус, ошибка) {предупреждение (статус + ошибка)}

и это предупреждение, которое я получил:

ошибка не найдена

Любая помощь будет большой признательна.


person nicohvi    schedule 23.06.2011    source источник
comment
Вы пытались отладить с помощью Firebug или чего-то еще, чтобы увидеть, действительно ли JSON загружается правильно? Похоже, это JSON, который не может быть найден.   -  person Björn    schedule 23.06.2011
comment
Да, это проблема. Кажется, я не нашел файл .json (возможно, я недостаточно ясно выразился в этой части).   -  person nicohvi    schedule 23.06.2011
comment
Это довольно странно. Я сделал базовый тест с вашими параметрами и вашим JSON, и все работает нормально. Мне пришлось закомментировать атрибут pager, но я сомневаюсь, что это причина вашей проблемы. Рабочий пример можно найти здесь: minvis.nl/jqGrid/tree.html какая-то польза для вас.   -  person Björn    schedule 23.06.2011


Ответы (1)


Я надеюсь, что демонстрация создана на основе ваших данных JSON и jqGrid. поможет вам найти ошибку в вашем коде. Вероятно, вы просто забыли поместить код, создающий сетку, внутрь jQuery(function(){/**/});.

Только один совет: если вы хотите, чтобы какой-то узел дерева был показан развернутым, как в моей демонстрации, вам нужно будет установить не только значение «истина» в последнем столбце («расширенный» скрытый столбец), но и добавить «истина». значение для скрытого «загруженного» столбца древовидной сетки. См. здесь и здесь для более подробной информации.

person Oleg    schedule 23.06.2011
comment
Большое спасибо вам обоим за помощь! :-) Оказывается, это была внешняя ошибка, связанная с конфигурацией проекта, вызвавшая ошибку. Я с пользой воспользуюсь обеими вашими демонстрациями! - person nicohvi; 23.06.2011