jqgridをドロップダウン列で作成しています。私はセル編集を使用しています。私は動的に変化する列のドロップダウンのオプションを必要とし、私はあることを、列を設定することで、これを実装しようとしました:jqGrid動的選択オプション
{ name: "AccountLookup", index: "AccountLookup", width: 90, editable: true, resizable: true, edittype: "select", formatter: "select" },
、その後beforeCellEditイベントで私が持っている:
beforeEditCell: function(id, name, val, iRow, iCol) {
if(name=='AccountLookup') {
var listdata = GetLookupValues(id, name);
if (listdata == null) listdata = "1:1";
jQuery("#grid").setColProp(name, { editoptions: { value: listdata.toString()} })
}
},
GetLookupValuesを"1:One; 2:Two"のような形式の文字列を返します。 これはうまくいきますが、オプションが1回クリックするだけです。つまり、行1のAccountIDをクリックするとドロップダウンが空です。行3のAccountIDをクリックすると、行1のクリックで設定したオプションが行3のクリックに表示されます。等々。だから、常に1回後ろをクリックしてください。
私は必要なものを達成する別の方法がありますか? Bacially表示されるドロップダウンオプションは常に変化しており、ユーザーが編集のためにセルを入力するときにそれらをロードする必要があります。 おそらく、私は何とかbeforeEditCellイベントのselectコントロールにアクセスし、setColPropコールを使用する代わりにその値を手動で入力できますか?もしそうなら、私はそれをする例を挙げることができますか?
もう1つのこと - ドロップダウンが空で、ユーザーがセル編集をキャンセルしない場合、グリッドスクリプトはエラーをスローします。私は違いがある場合は、clientarrayの編集を使用しています。
さらにもう1つ - select列のgetChangedCellsオプションは常にテキストを返しますが、値は/ Idではありません - これを回避する方法はありますか? –