2010-11-20 58 views
14

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

+0

哪里网格将数据为这个新柱? – griZZZly8 2010-11-20 10:21:03

+0

@ grizzzly8它应该是空的(数据字段是可编辑的)。 – Ockonal 2010-11-20 10:30:04

回答

31

动态添加列到jqGrid是不可能的。您必须重新创建具有更多一列的colModel的整个网格。如果您使用单独的colNames,则阵列的大小也必须增加。例如,您可以使用GridDestroy销毁现有网格。取而代之的使用jQuery.RemovejQuery.Empty也是可能的。

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

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

+0

谢谢,但我找不到如何使用GridDestroy。你能帮我一个小例子吗? ''jQuery(“#list”)。jqGrid('GridDestroy');'说该函数未定义(GridDestroy) – Ockonal 2010-11-20 10:33:20

+1

@Ockonal:我更新了我的答案,并包含一个小演示。 – Oleg 2010-11-20 12:12:10

+0

@Oleg,非常感谢。再一次你在jqgrid上节省了我的时间。 +1。 – vissu 2012-02-17 14:13:45

4

只使用

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

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

+1

在较新的版本中,这不再起作用。使用它来卸载jqGrid:$ .jgrid.gridUnload('#list'); – tudor 2017-05-18 14:16:06

-1

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

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

rownumbers:真实, 和 rownumWidth:25(默认)