jqGrid – 网格中没有数据消息?

如果当前没有从我们的搜索返回的数据,我们使用loadComplete回调向用户打印一条消息,表明没有数据。 有没有办法配置jqGrid在网格中打印出“无数据”消息? 目前我们将它打印在网格上方的div ,但希望它在实际网格内。

jqGrid仅在寻呼机区域的末尾显示“没有要查看的记录”消息( $.jgrid.defaults.emptyrecords ),并且仅在发生以下所有情况时才显示

  • 你定义一个寻呼机
  • viewrecords: true
  • 当前记录计数( reccount参数)为0。

我不知道在网格数据区域内(网格主体顶部)显示消息的任何“标准”方式。 在我看来,如果您需要这样的消息,您必须继续使用放置在网格主体上的div并在loadComplete事件句柄中隐藏/显示它。

致Oleg:是的,你是对的,因为jqGrid只在寻呼机中显示消息,即navGrid。 因此,在jqGrid表之后放置一个

是显示消息的最佳方式。

致Marcus:请参阅以下方法,了解我在其中一个项目中所做的工作。 我粘贴了HTML代码段和loadComplete实现,您必须触发逻辑以显示“无记录显示”消息。

HTML:

 
 

Java脚本:

 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'); } } } 

您可以覆盖正文表格html以显示您的消息。 用它来做:

 loadComplete: function() { if ($('#Grid').getGridParam('records') === 0) { oldGrid = $('#GridIdb2 tbody').html(); $('#Grid tbody').html("
No records found
"); } else oldGrid = ""; }

使用oldGrid var作为辅助来保存更改之前jqgrid的内容; 在提交新搜索之前设置旧值:

 if(oldGrid!=""){ $("#Grid tbody").html(oldGrid); }