2010-11-20 11 views
14

JQuery用のjqGridプラグインで動的に行を追加できますが、列でも同じことができますか?シンプルなテーブルがあれば手動で手作業をするのが好きですが、jqGridは多くのdivにテーブル情報を格納します。jqGrid新しい列を追加

+0

そして、あなたのグリッドは、この新しいのデータを取る場所カラム? – griZZZly8

+0

@ grizzzly8それは空でなければなりません(データフィールドは編集可能です)。 – Ockonal

答えて

31

動的にjqGridに列を追加することはできません。 colModelでグリッド全体を再作成する必要があります。別のcolNamesを使用する場合、配列のサイズも増やす必要があります。 GridDestroyなどを使用して、既存のグリッドを破棄することができます。代わりにjQuery.RemoveまたはjQuery.Emptyの使用も可能です。

更新済み:あなたのポストにはGridUnloadが良いと思われます。グリッドを再現する方法を示すsmall demoを作成しました。 GridUnloadまたはGridDestroyを使用できるようにするには、開発者用のjqGridを使用している場合は、プロジェクトにgrid.custom.jsを含めるか、jqGrid downloadページで「カスタム」「追加メソッド」を選択していることを確認する必要があります。

を更新:一つは、(jQuery.jqGrid.addColumn.js参照)hereからダウンロードすることができaddColumn方法を使用することができます。この方法はまだベータ版です。メソッドhereaddColumnX.htmの例を参照)を使用する方法を示すデモを見つけることができます。

+0

ありがとうございますが、私はGridDestroyの使い方を見つけることができません。小さな事例で私を助けてくれますか? (GridDestroy) – Ockonal

+1

@Ockonal:私は自分の答えを更新し、小さなデモを含めました。 – Oleg

+0

@Oleg、ありがとうございました。もう一度jqgridに自分の時間を保存しました。 +1。 – vissu

4

ちょうどそれが完全にグリッドをアンロードし、新しい列とデータを再ロードする準備ができて

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

を使用しています。

+1

新しいバージョンではこれはもう動作しません。これを使ってjqGridをアンロードします:$ .jgrid.gridUnload( '#list'); – tudor

-1

あなたは、単に新しい列モデルを設定し、グリッドをリロードすることができます

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

rownumbers:真、 と rownumWidth:25(デフォルト)

関連する問題