jqGrid tableToGrid - отображать сообщение, если в таблице не найдено ни одной строки - PullRequest
3 голосов
/ 10 декабря 2010

Я пытаюсь сгенерировать сетку, используя jqgrid на html-таблице.Я могу это сделать, но я хочу отобразить сообщение, если в таблице не найдено ни одной строки.Как я могу это сделать?

Вот мой код jquery ...

jQuery.extend(jQuery.jgrid.defaults, {
                caption: "my list",
                autowidth: true,
                height: "100%",
                hidegrid: false,
                loadComplete: function() {
                    alert("Grid has been loaded");
                },
                colModel:[
                   { name: 'date', index: 'date', width: 0, resizable: false },
                   { name: 'icon', index: 'icon', width: 0, resizable: false },
                   { name: 'shop', index: 'shop', width: 0, resizable: false },
                   { name: 'delete', index: 'delete', width: 0, resizable: false }
                ]
            });
            tableToGrid("#item_table", {
               colNames: ['Date', '', 'Shop', 'Delete']
            });

Ответы [ 2 ]

6 голосов
/ 10 декабря 2010

Стандартное сообщение, определенное в $.jgrid.defaults.emptyrecords (см. grid.locale-en.js), будет отображаться по умолчанию только в случае заполнения jqGrid удаленными данными, загруженными с сервера (см. этот ответ ). Соответствующий текст (см. grid.locale-en.js) «Нет записей для просмотра» будет отображаться в правой части строки состояния.

В другой ответ Я показал, как принудительно отобразить текст в случае «локального» заполнения jqGrid (как в вашем случае) или как отобразить соответствующий текст в области тела сетки ( см. демоверсии из ответа). Таким образом, вы можете сделать то же самое в случае преобразования существующей таблицы в jqGrid с учетом tableToGrid . Обработчик события beforeRequest , который делает это, может быть определен либо в jQuery.jgrid.defaults, либо в качестве дополнительного свойства второго параметра функции tableToGrid . Если вы следуете второй демонстрации, вам следует изменить код функции loadComplete , которую вы в настоящее время используете, чтобы показать / скрыть div с помощью сообщения «no rows» в теле jqGrid.

0 голосов
/ 31 октября 2011

На самом деле это не ошибка. Если вы заглянете в файл jqGrid.css, то обнаружите, что к каждой строке в таблице применяется стиль «white-space: pre»

.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space:pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}

Если вы удалите этот стиль (из всех классов в / * body * / section), вам придется поместить содержимое ячейки в одну строку с тегом.

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