2011-01-06 4 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

관련 문제