列の列インデックスが(それが入力パラメータcolModel
と同じである)前jqGrid初期colModel
アレイ内の列のインデックスと同じです。 rownumbers:true
を使用する場合は、multiselect:true
またはsubGrid:true
の追加の列が最初の行としてグリッドに追加されます。したがって、colModel
の配列にjqGridパラメータとして含まれる列インデックスは、グリッドの初期化後に他のものになる可能性があります。Free jqGridフォークは、それが内部的に列名によってマップされたパラメータiColByName
を、保持しているため、列名から列インデックスを取得簡素化:あなたは、インデックス
var getColumnSrcIndexByName = function(grid,columnName) {
var cm = grid.jqGrid('getGridParam','colModel'),
i=0, index=0, l=cm.length, cmName;
while (i<l) {
cmName = cm[i].name;
i++;
if (cmName===columnName) {
return index;
} else if (cmName!=='rn' && cmName!=='cb' && cmName!=='subgrid') {
index++;
}
}
return -1;
};
var index = getColumnSrcIndexByName($("#list"),'MyColumn');
を更新取得する例については、この単純な関数を使用することができます。一つは、単に必要な列インデックス(iCol
)となりますiColByName
経由var iColByName = $("#list").jqGrid("getGridParam", "iColByName");
とiColByName["MyColumn"]
を得ることができます。列のインデックスになります
var p = $("#list").jqGrid("getGridParam");
値
var iCol = p.iColByName["MyColumn"];
とp.colModel[iCol].name
は"MyColumn"
を次のようになります。私は1つがjqGridのすべてパラメータへの参照を取得するために任意のパラメータなしgetGridParam
を使用できることを思い出させます。