Можно ли остановить мерцание JqGrid при перезагрузке? - PullRequest
0 голосов
/ 21 января 2010

Всякий раз, когда я вызываю триггер ("reloadGrid") для JqGrid, он очищает существующую таблицу, отображает сообщение "загрузка", а затем регенерирует существующие данные - весь процесс занимает всего несколько миллисекунд, но это делает пользователя Интерфейс чувствую себя неполированным, если это случается много. Можно ли остановить его очистку и отображение сообщения о загрузке, и просто заменить его на последний dta?

Ответы [ 2 ]

1 голос
/ 21 января 2010

Если вы просто хотите остановить отображение сообщения о загрузке, вы можете использовать опцию loadui, то есть при инициализации сетки:

$("#grid").jqGrid({
    url: "/site/data",
    loadui: "disable",
    ...
);

Если вам нужно изменить это на лету, используйте метод setGridParam. Другими параметрами для loadui являются «включить» (показать сообщение о загрузке) и «заблокировать» (то же самое, но предотвращает любой другой ввод при загрузке).

0 голосов
/ 05 марта 2010

К сожалению, jqGrid очищает содержимое таблицы перед выполнением вызова AJAX, поэтому, пока он ожидает ответа, таблица пуста.

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

        function freezeHeight() {
            var $tableWrapper = getContainer($grid).find(".ui-jqgrid-bdiv");
            $tableWrapper.css("min-height", $tableWrapper.outerHeight());
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...