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
    )