我发现在jQuery的jqGrid插件中我可以动态添加行,但是我可以对列做同样的事情吗?如果有一个简单的表我宁愿手动手动执行此操作,但jqGrid会将表信息存储在很多div中。
答案 0 :(得分:31)
无法动态地向jqGrid添加列。您必须使用colModel
重新创建整个网格,其中包含更多列。如果使用单独的colNames
,则必须增加数组的大小。例如,您可以使用GridDestroy来销毁现有网格。也可以使用jQuery.Remove
或jQuery.Empty
。
更新:在我看来GridUnload更适合您的作品。我创建了small demo,演示了如何重新创建网格。为了能够使用GridUnload或GridDestroy,您必须验证项目中是否包含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");