2011-01-06 61 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。請參見hereherehere示例。此外,我建議您另外使用recreateForm:true選項。

+0

謝謝。這正是我期待的! – Stahlkocher 2011-01-08 12:22:31

相關問題