【问题标题】:jqGrid table is filled but no rows are displayedjqGrid 表已填满但未显示任何行
【发布时间】:2013-10-04 10:35:25
【问题描述】:

我有一个 jqGrid 表的问题,我无法找到解决方案,也无法找到引导我正确方向的答案,我已经阅读了一些答案,但没有一个专注于我的问题:

到目前为止,我阅读的许多相关问题都集中在使用 JSON 数据填充网格,但我的情况并非如此。我填充网格的方式是使用addRowData 方法,它似乎有效,因为当我在浏览器的调试工具(Chrome 29.0.1547.76 m)和tabletbody 上检查表格元素时加上所有 tr 元素与预期数据一起存在,但它们不可见!

inspection screenshot

所有行的宽度和高度都为 0px,这就是为什么(我想)数据不显示的原因。但是我用同样的方法显示另一个表,结果是可见的。

我无法粘贴所有代码,因为它很乱而且很乱,但我会尽力提供有用的信息:

// The ConvertTojqGrid method converts the data (array object)
// into the format expected by jqGrid in order to provide the
// colModel and rows
var jqGridData = ConvertTojqGrid(data);

// the divID begins with '#'
var div = jQuery(divID)[0];
var table = divID + '_table'

jQuery(divID).append('<table id="' + table.substr(1) + '"></table>');
// get rid of the '#' in the string  ^^^^^^^^^^^^^^^

jQuery(table).jqGrid(
{
  autowidth: true,
  gridview: true,
  headertitles: true,
  datatype: 'clientSide',
  caption: gridCaption,
  colModel: jqGridData.colModel,
  records: jqGridData.rows.length,
  height: div.clientHeight,
  width: div.clientWidth
});

jqGridData.rows.forEach(function(row)
{
  jQuery(table).addRowData('row_id', row);
});

网页显示了一个表格,其中包含按预期显示的数据但隐藏了一些列,在表格的左上方放置了一个按钮,该按钮显示了一个带有另一个网格的表格,该表格显示了没有隐藏列的同一个表格。

所有表格都放入运行时生成的div 中,并在此div 中生成table 标记以包含网格。

简而言之,问题不在于获取数据,也不在于填表,问题在于数据正确,填表但行不可见。

任何建议都会受到欢迎。

【问题讨论】:

    标签: javascript jquery jqgrid


    【解决方案1】:

    在您的 jqGrid 定义设置中尝试datatype: "local"

    如果这不起作用,您的 colModel 是什么样的,您是否有用于填充行的数据格式示例?

    【讨论】:

    • 抱歉打扰了...我发现了问题,这与datatypecolModel 完全无关:简单地说,这些列被隐藏了。现在我很惭愧,投票结束。
    • 没有羞耻 - 发布你是如何发现这些列被隐藏的,然后选择它作为答案 - 也许其他人会遇到同样的事情。
    猜你喜欢
    • 1970-01-01
    • 2016-11-13
    • 2019-06-23
    • 2021-07-14
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多