我正在尝试在html表上使用jqgrid生成网格。我能够这样做,但如果表中没有找到任何行,我想显示一条消息。我怎么能这样做?
这是我的jquery代码......
jQuery.extend(jQuery.jgrid.defaults, {
caption: "my list",
autowidth: true,
height: "100%",
hidegrid: false,
loadComplete: function() {
alert("Grid has been loaded");
},
colModel:[
{ name: 'date', index: 'date', width: 0, resizable: false },
{ name: 'icon', index: 'icon', width: 0, resizable: false },
{ name: 'shop', index: 'shop', width: 0, resizable: false },
{ name: 'delete', index: 'delete', width: 0, resizable: false }
]
});
tableToGrid("#item_table", {
colNames: ['Date', '', 'Shop', 'Delete']
});
答案 0 :(得分:6)
$.jgrid.defaults.emptyrecords
中定义的标准消息(参见grid.locale-en.js
)将仅在使用从服务器加载的远程数据填充jqGrid的情况下默认显示(请参阅{{ 3}})。相应的文字(见grid.locale-en.js
)"没有要查看的记录"将显示在状态栏的右侧。
在this answer中,我展示了如何强制显示文字,以防当地人发表文字。填充jqGrid(就像你的情况一样)或者如何在网格的正文区域中显示相应的文本(参见答案中的演示)。因此,在将现有表格转换为another answer的jqGrid时,您也可以这样做。执行此操作的事件处理程序tableToGrid可以在jQuery.jgrid.defaults
中定义,也可以在beforeRequest函数的第二个参数的附加属性中定义。如果您遵循第二个演示,则应修改当前用于显示/隐藏div的tableToGrid函数的代码,其中包含" no rows" jqGrid正文中的消息。
答案 1 :(得分:0)
事实上,这不是一个错误。如果你查看jqGrid.css文件,你会发现表格中的每一行都是应用了“white-space:pre”的样式
.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space:pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
如果删除此样式(来自/ * body * / section中的所有类),那么您将需要强制将单元格内容放在带有标记的一行中。