2013-02-28 75 views
3

這裏是我的問題...Kendo Dropdownlist沒有更新第一張唱片上的Kendo Grid數據源?

我想有綁定到我的網格,這樣的下拉列表:


{ 
    field: "ContactTypeId", 
    hidden: true 
}, 
{ 
    field: "ContactTypeName", 
    title: "Type", 
    editor: ContactTypeAddressCombo 
} 

function ContactTypeAddressCombo(container, options) { 
       $('<input placeholder="A" data-bind="value:ContactTypeId"/>') 
       .appendTo(container) 
       .kendoDropDownList({ 
        autoBind: false, 
        dataTextField: "Name", 
        dataValueField: "ContactTypeId", 
        dataSource: { 
         type: "json", 
         serverFiltering: true, 
         transport: { 
          read: { 
           contentType: "application/json; charset=utf-8", 
           type: "POST", 
           url: "../Services/svcContact_Type.asmx/Search", 
           dataType: "json", 
           cache: false 
          }, 
          parameterMap: function(options, operation) { 
           options.AddressFlag = 1; 
           options.PhoneFlag = 1; 
           options.EmailFlag = 1; 
           return kendo.stringify(options); 
          } 
         }, 
         schema: { 
          data: "d" 
         } 
        }, 
        index: 0 
       }); 
      } 

一切完美,EXCEPT用於在網格中添加新行時。下拉加載正常並且選擇了一個項目,但除非我更改爲其他項目,否則網格將無法識別所選項目(即使選擇了項目,網格的數據源也會發送0)。

一個解決方案是讓第一個項目總是帶有0值的「選擇一個」,這將強制用戶選擇一個項目。但這遠非理想。那麼......還有其他建議嗎?下拉列表是否有某種佔位符?

感謝

回答

2

這個問題是在互聯網上討論多次,每個用戶描述它以不同的方式。創建新項目時,應該設置默認值,以便MVVM框架可以正確分配DropDownList的選定值,或者您應該在編輯事件的幫助下手動完成。

換句話說 - 您的模型屬性不應該爲空 - 它應該是字符串或數字,或者當您使用DropDownList更改值時,它不會被正確更新(DropDOwnList使用的整個dataItem將被分配作爲價值)。

Here是更多信息。