0


1

ユーザーが選択ボックスから選択したときにjqGridの編集フォームに値をロードする方法
 +
編集フォームには選択ドロップダウンがあります。 ユーザーがアイテムを選択すると、いくつかの値をロードしてフォームに入力したいと思います。

私のコードはこれまでのところ:

var grid = $("#list").jqGrid({
  parameters...,
  colNames:[...],
  colModel :[
    ...
  ]
});

$("#list").jqGrid(
  'navGrid',
  '#pager',
  {
    view:true,
    edit:true,
    del:true,
    search:false,
  },

  /* EDIT */
  {
    closeAfterEdit: true,
    afterSubmit: processAddEdit,
    onInitializeForm: setFormEvents,
    ...
  }
  ...
);


function setFormEvents(formid) {
  /* It sometim works when using timeout..
   * It seems to be a timing issue.
   * But i have no idea why and how to solve
   */
  setTimeout ( function(){
    $('select#data_id', formid).unbind();
    $('select#data_id', formid).change(function() {
      $.getJSON("/URL?dataid=" + $('select#data_id option:selected').val(),
        function(data){
          $.each(data, function(i,item){
            if (item.field == "anrede") { $("#anrede").val(item.value); }
            else if (item.field == "titel") { $("#titel").val(item.value); }
            else if (item.field == "vorname") { $("#vorname").val(item.value); }
            else if (item.field == "nachname") { $("#nachname").val(item.value); }
            else if (item.field == "firma") { $("#firma").val(item.value); }
            else if (item.field == "strasse") { $("#strasse").val(item.value); }
            else if (item.field == "hausnummer") { $("#hausnummer").val(item.value); }
            else if (item.field == "plz") { $("#plz").val(item.value); }
            else if (item.field == "ort") { $("#ort").val(item.value); }
            else if (item.field == "land") { $("#land").val(item.value); }
          });
        });
    });
  }, 1000 );
}

1 Answer


1


編集フィールドにイベント(ケースの「変更」イベントなど)をバインドするには、http://www.trirand.com/jqgridwiki/doku.php?id = wiki:common_rules#editoptions [editoptionsの「dataEvents」を使用する必要があります]。 https://stackoverflow.com/questions/4347647/jqgrid-edit-using-formedit-disable-fields-based-on-value-of-another-field/4347955#4347955 [こちら]、https:// stackoverflowをご覧ください。 com / questions / 4407273 / jqgrid-retrieve-data-of-cell-and-manipulate-it / 4407958#4407958 [here]またはhttps://stackoverflow.com/questions/4469650/jqgrid-incorrect-select-drop-down -option-values-in-edit-box / 4480184#4480184 [ここ]の例。 さらに、http://www.trirand.com/jqgridwiki/doku.php?id = wiki:form_editing#properties [recreateForm:true]オプションを追加で使用することをお勧めします。