jqGrid - не предоставлять данные сообщения в сетке? - PullRequest
2 голосов
/ 14 октября 2010

Если в результате нашего поиска не было возвращено данных, мы используем обратный вызов loadComplete, чтобы распечатать сообщение для пользователя, указывающее, что данных нет.Есть ли способ настроить jqGrid для распечатки сообщения «нет данных» в сетке?В настоящее время мы распечатываем его в div над сеткой, но хотели бы, чтобы оно находилось в фактической сетке.

Ответы [ 3 ]

8 голосов
/ 14 октября 2010

jqGrid отображает сообщение «Нет записей для просмотра» ($.jgrid.defaults.emptyrecords) только в конце области пейджера и только в том случае, если все последующие действия происходят

  • вы определяете пейджер
  • viewrecords: true
  • текущее количество записей (параметр reccount) равно 0.

Мне неизвестен какой-либо «стандартный» способ отображения сообщения внутри области данных сетки (поверх тела сетки). Мне кажется, если вам нужно такое сообщение, вы должны продолжать использовать div, расположенный над телом сетки, и скрывать / показывать его внутри loadComplete дескриптора события.

0 голосов
/ 11 августа 2014

Вы можете переписать основную таблицу html, чтобы показать ваше сообщение.Используйте это, чтобы сделать это:

loadComplete: function() {
                if ($('#Grid').getGridParam('records') === 0) {
                    oldGrid = $('#GridIdb2 tbody').html();
                    $('#Grid tbody').html("<div style='padding:6px;background:#D8D8D8'>No records found</div>");
                }
                else
                    oldGrid = "";
             }

Используйте oldGrid var в качестве вспомогательного, чтобы сохранить то, что jqgrid имел до того, как вы изменили;перед отправкой нового поиска установите старое значение:

if(oldGrid!=""){
    $("#Grid tbody").html(oldGrid);
}
0 голосов
/ 22 июня 2012

Олегу: Да, вы правы, поскольку jqGrid показывает сообщение только в пейджере, то есть navGrid. Поэтому размещение одного <DIV> после таблицы jqGrid - лучший способ показать сообщение.

Маркусу: см. Подход ниже того, что я сделал в одном из проектов. Я вставил фрагмент HTML-кода и реализацию loadComplete, где вам нужно активировать логику, чтобы отобразить сообщение «Нет записей для показа».

HTML:

<code><pre>
  <div class="cols jsGridOuter" style="position:relative;">
    <table id="mandateList" class="jsStretchGridWidth"><tr><td></td></tr></table>
    <div class="noResultsDiv gridNoRecords jstHidden">
      <span class="notice"><label>No records to show</label></span>
    </div>
    <div id="pagination"></div>
  </div>

Java Script:

loadComplete: function() {
  if (j$(this).getGridParam("records")==0) 
  {
    j$('div#pagination').hide();
    if (j$('div.noResultsDiv').hasClass('jstHidden'))
    {
      j$('div.noResultsDiv').removeClass('jstHidden');
    }
  }
  else
  {
    j$('div#pagination').show();
    if (j$('div.noResultsDiv').length>0)
    {
      j$('div.noResultsDiv').addClass('jstHidden');
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...