2013-11-25 119 views
1

基本上我有一個Kendo UI Dropdownlist作爲我的第一個網格欄名爲「instrumentName」 在彈出式編輯模式下,我可以在下拉列表中看到正確的instrumentName,但是當更改值:在網格編輯模式中的Kendo UI下拉列表

只要我選擇一個新儀器 - 儀器ID顯示在網格上(在背景中)。更新後的INSTRUMENT NAME應顯示在網格上。

一旦我點擊更新,它不顯示儀器名稱,而是儀器ID(這是一個數字)。

一些代碼片段:

instrDropDown.value(e.model.instrumentId); 
nodeGrid = $("#curvesGrid").kendoGrid({ 
     dataSource: new kendo.data.DataSource({ ... }); 
     columns: [ 
     { 
      field: "instrumentName", 
      editor: instrumentsDropDownEditor, template: "#=instrumentName#" 
     }, 
     { 
      field: "instrumentTypeName"  
     }, 
     edit: function(e){ 
      var instrDropDown = $('#instrumentName').data("kendoDropDownList"); 
      instrDropDown.list.width(350); // widen the INSTRUMENT dropdown list 
      if (!e.model.isNew()) { 
       instrDropDown.value(e.model.instrumentId); 
      } 
     } 
    }); 

,這裏是我爲下拉模板編輯器:

function instrumentsDropDownEditor(container, options) { 

    // INIT INSTRUMENT DROPDOWN ! 
    var dropDown = $('<input id="instrumentName" name="instrumentName">'); 
    dropDown.appendTo(container); 
    dropDown.kendoDropDownList({ 
     dataTextField: "name", 
     dataValueField: "id", 
     dataSource: { 
      type: "json", 
      transport: { 
       read: "/api/breeze/GetInstruments" 
      }, 
     }, 
     pageSize: 6, 
     //select: onSelect, 
     change: function() { }, 
     close: function (e) { 

     }, 
     optionLabel: "Choose an instrument" 
    }).appendTo(container); 
} 

我需要做任何事情的下拉的變化特別?

感謝。 鮑勃

回答

0

dataFieldValue是什麼將被保存爲價值DropDownList。如果您想要保存name,則應將dataValueField定義爲name

關於後臺更新是默認行爲,因爲這是一個ObservableObject,因此更改會自動傳播。如果你不想要這個,你可能應該嘗試使用假冒變量作爲下拉菜單,並在save事件中將其複製到實際字段中。你真的需要這個嗎?

相關問題