2010-12-10 77 views
3

我试图在html表上使用jqgrid生成一个网格。我能够做到这一点,但如果表中没有行,我想显示一条消息。我怎样才能做到这一点?jqGrid tableToGrid - 如果在表中找不到行,则显示消息

这是我的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'] 
      }); 

回答

6

$.jgrid.defaults.emptyrecords(见grid.locale-en.js)定义的标准消息将每默认只有在填充的jqGrid情况下从服务器(加载远程数据被显示见this answer)。相应的文本(请参阅grid.locale-en.js)状态栏右侧将显示“没有要查看的记录”。

another answer我演示了如何在'local'填充jqGrid的情况下强制显示文本(如您的情况)或如何在网格的主体区域显示相应的文本(请参阅答案中的演示) 。因此,如果将现有表格转换为jqGrid,则可以执行相同的操作,即tableToGrid。这样做的事件处理程序beforeRequest可以在jQuery.jgrid.defaults中定义,或者作为tableToGrid函数的第二个参数的附加属性。如果您遵循第二个演示,您应修改当前用于显示/隐藏div的代码loadComplete,并在jqGrid正文中使用“no rows”消息。

+0

“另一个答案”中的链接不正确:与“此答案”链接相同。在哪里可以找到引用的答案和代码,它没有在网格体中显示recods找到的消息? – Andrus 2012-01-29 14:05:53

0

其实这不是一个错误。如果你看看jqGrid.css文件,你会发现在表中的每一行应用的样式与“白色空间:前”

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

如果从所有类中删除此风格(在/ * *身体/节),那么你会被迫把单元格内容放在一个标记行中。

相关问题