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