jqGrid表已填充但不显示任何行

时间:2013-10-04 10:35:26

标签: javascript jquery jqgrid

我有一个jqGrid表的问题,我无法找到解决方案,也没有一个能够指导我正确方向的答案,我已经在SO中阅读了一些答案,但没有一个关注我的问题:

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

inspection screenshot

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

我无法粘贴所有代码,因为它是凌乱和spagetty,但我会尝试提供有用的信息:

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

网页显示的数据表按预期显示,但隐藏了一些列,表格左上方放置了一个按钮,此按钮显示一个表单,其中包含另一个显示相同表格而没有隐藏列的表格。 / p>

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

简而言之,问题不在于获取数据或填写表格,问题是数据是正确的并且表格已填满,但行不可见。

任何建议都会很好。

1 个答案:

答案 0 :(得分:1)

尝试使用jqGrid定义设置datatype: "local"

如果这不起作用,你的colModel是什么样的,你有一个用于填充行的数据格式样本吗?