Я реализовал это следующим образом (хотя это зависит от того факта, что я использовал предоставленную функциональность пейджера). Все, что отображается, когда записи не возвращаются, - это строка заголовка и одна строка пейджера с надписью «Нет записей для просмотра».
Фрагмент моего кода от ранней настройки параметров по умолчанию в jqGrid (до того, как сетка загрузится на мою страницу):
// jQuery jqGrid default options
$.extend($.jgrid.defaults, {
pager: '#gridPager',
emptyrecords: "No records to view", // Unnecessary (default in grid.locale-en.js)
recordpos: 'left',
recordtext: "Viewing {0} - {1} of {2}", // Overriding value in grid.locale-en.js
viewrecords: true
});
Фрагмент моего кода при загрузке jqGrid:
$('#grid').jqGrid({
loadComplete: function () {
// Hide column headers and top pager if no records were returned
if ($('#grid').getGridParam('records') === 0) {
$('#grid_toppager').hide(); // I used top & bottom pagers, so I hid one
$('.ui-jqgrid-htable').hide();
}
}
});
РЕДАКТИРОВАТЬ: Вы также можете сослаться на этот ответ Как полностью скрыть jqgrid, когда данные не возвращены? и выполнить одно из двух:
1) Поместите ваше сообщение в один блок, а сетку - в другой. Скрыть сетку и показать сообщение.
2) Поместите ваше сообщение в div прямо под сеткой. Следуйте моему подходу выше, но скрыть все пейджеры (не только один). Покажите свой div в том же обработчике событий. Все, что вы должны увидеть, это полоса подписи и разделение вашего сообщения.