jqGrid 添加新列

IT技术 javascript jquery jqgrid
2021-02-03 03:27:49

我发现在 JQuery 的 jqGrid 插件中我可以动态添加行,但是我可以对列做同样的事情吗?如果有一个简单的表格,我更愿意手动手动完成,但 jqGrid 将表格信息存储在许多 div 中。

4个回答

无法动态地向 jqGrid 添加一列。您必须通过colModel多一列重新创建整个网格如果您使用 separator colNames,则数组的大小也必须增加。例如,您可以使用GridDestroy来销毁现有网格。也可以使用jQuery.RemovejQuery.Empty代替。

更新:在我看来GridUnload更适合你的姿势。我创建了一个小演示来演示如何重新创建网格。为了能够使用GridUnloadGridDestroy,您必须验证您的项目中是否包含 grid.custom.js(如果您使用 jqGrid 的开发人员版本),或者您已在jqGrid 下载页面上选中“自定义”“附加方法”

更新 2:可以使用addColumn可从此处下载的方法(请参阅 参考资料jQuery.jqGrid.addColumn.js)。该方法仍处于测试阶段。人们可以找到一些演示展示了如何使用该方法,在这里(见addColumnX.htm例子)。

@Oleg,非常感谢。你再一次节省了我在 jqgrid 上的时间。+1。
2021-04-08 03:27:49
谢谢,但我找不到如何使用 GridDestroy。你能帮我举个小例子吗?jQuery("#list").jqGrid('GridDestroy');表示该函数未定义(GridDestroy)
2021-04-12 03:27:49

只是使用

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

它将完全卸载网格,并准备好再次加载新的列和数据。

在较新的版本中,这不再起作用。使用它来卸载 jqGrid: $.jgrid.gridUnload('#list');
2021-04-05 03:27:49

rownumbers: true, and rownumWidth:25(default)

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

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