2011-01-06 18 views
0


編集フォームで選択ドロップダウンです。ユーザーが項目を選択すると、いくつかの値を読み込んでフォームに入力したいと思う。これまでユーザが選択ボックスから選択したときに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

(あなたのケースのようにchangeイベント)イベントをバインドするには、[編集]フィールドには、あなたはeditoptionsdataEventsを使用する必要があります。 here,hereまたはhereの例を参照してください。さらに、recreateForm:trueオプションを追加使用することをお勧めします。

+0

ありがとうございます。それはまさに私が探していたものです! – Stahlkocher

関連する問題