Как подавить jqgrid от начальной загрузки данных? - PullRequest
4 голосов
/ 05 декабря 2009

У меня есть jqgrid в модальном всплывающем окне, данные которого зависят от некоторого ввода. Я делаю это, устанавливая параметр url сетки на основе ввода, как показано ниже, затем показывая всплывающее окно:

$(ContainerGrid.Grid).setGridParam({
    url: urlGetContainers + '?CRALineId=' + currentCRALineId
}).reloadGrid();

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

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

Есть ли способ подавить jqgrid от первоначальной загрузки данных?

Ответы [ 2 ]

3 голосов
/ 05 декабря 2009

Инициализируйте вашу сетку в событии «Показать» модального всплывающего окна. Вы можете динамически сгенерировать jqGrid и вставить его в DOM, а затем выполнить позднюю привязку данных, используя обычный код инициализации.

0 голосов
/ 04 марта 2012

У меня была такая же потребность, как и у вас, когда мне требовалось, чтобы мои сетки загружали данные только после получения хеш-части URL-адреса (хеш-часть URL-адреса определяет, какие фильтры установлены для моей сетки, тогда данные могут быть загружен в сетку). Поэтому, чтобы моя сетка не загружала данные при запуске, я сделал следующее:

При настройке сетки:

$("#grid").jqGrid({
    url:"",
    mtype:"",
    ...

Позже, когда мне нужно было загрузить данные:

$("#grid").jqGrid("setGridParam",{datatype: "json", mtype: 'POST', url: myUrl, postData: params}).trigger("reloadGrid");

Я также считаю необходимым выполнить {postData: null} перед перезагрузкой, чтобы убедиться, что переменные поста из предыдущего поста не включены в будущие посты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...