jqGridのeditGridRowで連続追加時にselectのdefaultValueを動的に変更する
editGridRowやnavGridの追加ボタンを使用して大量のデータを入力したいとき、
selectの値を毎回指定しなおすのが面倒だから、
最後に入力した値をdefaultValueに設定する。
・afterSubmit内のthisから対象のgridを取得
var $t = $(this.gbox + ' .ui-jqgrid-btable');
※#gbox_グリッドのID なので substring などで グリッドのID だけ抜き出すのもありです。
・特定のカラムだけ適応する場合
var cm = $($t).jqGrid('getColProp', 'カラム名(colModelのname)');
.jqGrid("navGrid", "#pager", { edit: true, add: true, del: true, search: true, 'refresh':false, 'addtext':'追加', 'edittext':'編集', 'deltext':'削除', 'searchtext':'検索', refreshstate: "current"}, {'recreateForm': true}, // edit {'recreateForm': true, 'afterSubmit': function (response, postdata) { var success = true; var message = ''; var new_id = 0; var $t = $(this.gbox + ' .ui-jqgrid-btable'); for (var i in postdata) { var cm = $($t).jqGrid('getColProp', i); if (cm.edittype == 'select') { cm.editoptions.defaultValue = postdata[i]; $($t).jqGrid('setColProp', cm); } } return [success, message, new_id]; } }, // add {}, // delete {multipleSearch: true, closeAfterSearch: true, sopt: ['cn','le','ge','bw','ew','eq'] } // search )