2010-11-20 57 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(默認)