【问题标题】:jqGrid add new columnjqGrid 添加新列
【发布时间】:2011-05-13 00:50:02
【问题描述】:

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

【问题讨论】:

  • 您的网格将在哪里获取此新列的数据?
  • @grizzzly8 它应该是空的(数据字段是可编辑的)。

标签: javascript jquery jqgrid


【解决方案1】:

无法动态向 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 示例)。

【讨论】:

  • 谢谢,但我找不到如何使用 GridDestroy。你能帮我举个小例子吗? jQuery("#list").jqGrid('GridDestroy'); 表示函数未定义(GridDestroy)
  • @Oleg,非常感谢。您再次节省了我在 jqgrid 上的时间。 +1。
【解决方案2】:

只需使用

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

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

【讨论】:

  • 在较新的版本中,这不再起作用。使用它来卸载 jqGrid: $.jgrid.gridUnload('#list');
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

    行号:真, 和 rownumWidth:25(默认)

    【讨论】:

      猜你喜欢
      • 2014-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多