我有一个jqGrid表的问题,我无法找到解决方案,也没有一个能够指导我正确方向的答案,我已经在SO中阅读了一些答案,但没有一个关注我的问题:
到目前为止,我阅读的许多相关问题都集中在使用JSON数据填充网格,但这不是我的情况。我使用addRowData
方法填充网格的方式似乎有效,因为当我检查浏览器的调试工具(Chrome 29.0.1547.76 m)和table
上的表格元素时,tbody
以及所有tr
元素与预期数据一起存在,但它们不可见!
所有行的宽度和高度均为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
标记以包含网格。
简而言之,问题不在于获取数据或填写表格,问题是数据是正确的并且表格已填满,但行不可见。
任何建议都会很好。
答案 0 :(得分:1)
尝试使用jqGrid定义设置datatype: "local"
。
如果这不起作用,你的colModel是什么样的,你有一个用于填充行的数据格式样本吗?