jqGrid 添加新列

15

我发现在JQuery的jqGrid插件中可以动态地添加行,但是能否对列进行相同的操作呢?如果表格比较简单,我更愿意手动添加列,但是jqGrid将表格信息存储在许多div中。


你的网格将从哪里获取这个新列的数据? - griZZZly8
@grizzzly8 应该是空的(数据字段可编辑)。 - Max Frai
4个回答

31
无法在 jqGrid 中动态添加列。必须重新创建整个网格,并将 colModel 带有一列。如果使用单独的 colNames,则数组的大小也必须增加。例如,您可以使用 GridDestroy 来销毁现有网格。也可以使用 jQuery.RemovejQuery.Empty更新: 对于您的目的,GridUnload 似乎更好。我创建了一个小演示,演示了如何重新创建一个网格。要能够使用GridUnloadGridDestroy,您必须验证是否在项目中包含 grid.custom.js(如果您使用 jqGrid 的开发人员版本)或您已在jqGrid下载页面上选中了“自定义”“附加方法”。更新 2:可以使用addColumn方法,该方法可以从这里下载(参见jQuery.jqGrid.addColumn.js)。该方法仍处于测试阶段。您可以在这里找到一些演示如何使用该方法的演示文稿(请查看addColumnX.htm示例)。

谢谢,但我找不到如何使用GridDestroy。你能给我一个小例子吗?jQuery(“#list”)。jqGrid('GridDestroy');说函数未定义(GridDestroy)。 - Max Frai
@Oleg,非常感谢你。再次感谢你在jqgrid上节省了我的时间。+1。 - vissu

4

只需使用

$("#gridid").jqGrid('GridUnload');

它将完全卸载网格,并准备使用新列和数据重新加载。


1
在新版本中,这个方法不再起作用了。可以使用以下代码来卸载jqGrid:$.jgrid.gridUnload('#list'); - etudor

0

行号: true, 和 行号宽度: 25(默认)


-1

你可以简单地设置新的列模型并重新加载网格:

var newColModel = $("#myGrid").jqGrid("getGridParam", "colModel").concat({ /* new column attributes */ });
$("#myGrid").jqGrid("setGridParam", {colModel: newColModel}).trigger("reloadGrid");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接