Кэширование подсети или остановка удаления данных подсетки (jqGrid) - PullRequest
2 голосов
/ 28 июля 2010

Есть ли способ заставить jqGrid не удалять данные подсетки при переключении ее строки?Мой текущий процесс загрузки сетки данных выглядит следующим образом:

1) Настройка основной сетки, настройка подсетки программно с идентификатором, который я могу использовать позже

2) Загрузка данных в основную сетку локально черезjson

3) Добавить данные в подсеть локально с помощью json

Из-за того, что я загружаю подсеть локально, а не по URL, когда пользователь переключает (скрывает, а затем снова отображает) сетку,В нем нет никаких данных, и я хочу, чтобы он отображал исходные данные, предоставленные подсетке.

Я знаю, что это может показаться странным способом загрузки данных, но есть причина

То, что я сейчас делаю с jqGrid, - это отображение тонны и тонны страховой информации на одной веб-странице (по сути, это отчет).Эта веб-страница должна автоматически загружать все данные, и у меня есть много случаев, когда мне нужно предоставить подсеточную функциональность.Я выяснил, как я могу сделать это, вручную заставляя событие click происходить так, чтобы подсетка отображалась, но опять же, если пользователь нажимает на подсетку, тогда она исчезает и не возвращается.

Если у вас есть какие-либо предложения для этого, пожалуйста, дайте мне знать.

Кроме того, если вы считаете, что есть лучшие способы автоматического отображения всех данных, пожалуйста, дайте мне знать об этом.До сих пор я находил, что с jqGrid легко работать, но я заставлял его делать то, чего он изначально не делал, например, добавлять общие значения в строке нижнего колонтитула.

Заранее спасибо заваша помощь.

1 Ответ

2 голосов
/ 26 мая 2011

Что вы хотите сделать, это запретить jqGrid перезагружать данные подсетки при раскрытии строки. Ручка управления для этого находится в свойстве subGridOptions jqGrid. Объект subGridOptions имеет логическое свойство reloadOnExpand, которое контролирует это точное поведение.

Когда вы инициализируете свой объект jqGrid, просто установите для этого свойства значение false, как показано ниже:

jQuery("#gridId").jqGrid({
    // ... other properties ...
    subGrid: true,
    subGridOptions: {
        reloadOnExpand: false // Prevent jqGrid from wiping out the subgrid data.
    },
    subGridRowExpanded: subGridExpandCallback,
    // ... other properties ...

Единственное место, где я мог найти этот код, было сделать «Просмотр исходного кода» на странице их демонстрационного сайта, где упоминается такое поведение. Демо-страница на момент публикации: http://www.trirand.com/blog/phpjqgrid/examples/hierarchy/subgrid_loadonce/default.php

...