jqGrid添加新列

时间:2010-11-20 09:31:31

标签: javascript jquery jqgrid

我发现在jQuery的jqGrid插件中我可以动态添加行,但是我可以对列做同样的事情吗?如果有一个简单的表我宁愿手动手动执行此操作,但jqGrid会将表信息存储在很多div中。

4 个答案:

答案 0 :(得分:31)

无法动态地向jqGrid添加列。您必须使用colModel重新创建整个网格,其中包含更多列。如果使用单独的colNames,则必须增加数组的大小。例如,您可以使用GridDestroy来销毁现有网格。也可以使用jQuery.RemovejQuery.Empty

更新:在我看来GridUnload更适合您的作品。我创建了small demo,演示了如何重新创建网格。为了能够使用GridUnloadGridDestroy,您必须验证项目中是否包含grid.custom.js(如果您使用的是jqGrid的开发者版本),或者您已选中“Custom”“Additinal”方法“在jqGrid download页面上。

更新2 :可以使用addColumn方法,可以从here下载(请参阅jQuery.jqGrid.addColumn.js)。该方法仍处于测试阶段。可以找到一些演示,演示如何使用方法here(参见addColumnX.htm示例)。

答案 1 :(得分:4)

只需使用

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

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

答案 2 :(得分:0)

rownumbers:是的, 和 rownumWidth:25(缺省)

答案 3 :(得分:-1)

您只需设置新的列模型并重新加载网格:

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