如果我们的搜索当前没有返回任何数据,我们使用loadComplete
回调向用户打印一条消息,表明没有数据。有没有办法配置jqGrid在网格中打印出“无数据”消息?目前我们在网格上方div
打印出来,但希望它在实际网格内。
答案 0 :(得分:8)
jqGrid仅在寻呼机区域的末尾显示“没有要查看的记录”消息($.jgrid.defaults.emptyrecords
),仅在发生以下所有情况的情况下显示
viewrecords: true
reccount
参数)为0。我不知道在网格数据区域内(网格主体顶部)显示消息的任何“标准”方式。在我看来,如果您需要这样的消息,您必须继续使用放置在网格主体上的div并在loadComplete
事件句柄中隐藏/显示它。
答案 1 :(得分:0)
To Oleg:是的,你是对的,因为jqGrid
仅在寻呼机中显示消息,即navGrid。因此,在jqGrid表之后放置一个<DIV>
是显示消息的最佳方式。
To Marcus:请参阅以下方法,了解我在其中一个项目中所做的工作。我粘贴了HTML代码段和loadComplete
实现,您必须触发逻辑以显示“无记录显示”消息。
HTML:
<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>
</pre>
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');
}
}
}
答案 2 :(得分:0)
您可以覆盖正文表格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);
}