2016-07-02 96 views
0

我想實現kendo網格自定義編輯器(下拉列表)。kendo網格自定義編輯發送[對象對象]

一切都很是不錯,但如果創建新的記錄或更新存在的記錄時,下拉欄爲空我得到了更新錯誤,在調試時,我看到 「的翻譯:」發爲大陸柱, 的價值,但是當下拉列有價值我可以改變下拉值和更新記錄是好的!

我的代碼是:

var crudServiceBaseUrl = "http://localhost:8090/hr"; 

var countryDataSource = 
     new kendo.data.DataSource({ 
       transport: { 
          parameterMap: function(options, operation) { 
           if (operation !== "read" && options.models) { 
            return { 
             models: kendo.stringify(options.models) 
            }; 
           } 
          }, 
          read: { 
            url: crudServiceBaseUrl + "/countries", 
            dataType: "jsonp" 
           }, 
           update: { 
            url: crudServiceBaseUrl + "/countries/Update", 
            dataType: "jsonp" 
           }, 
           destroy: { 
            url: crudServiceBaseUrl + "/countries/Destroy", 
            dataType: "jsonp" 
           }, 
           create: { 
            url: crudServiceBaseUrl + "/countries/Create", 
            dataType: "jsonp" 
           } 
       }, 
       schema : { 
        data : "items" 
        }, 
       model: {id : "CD_CONT", 
         fields: { 
          CD_CONT : { type: "string",editable : false}, 
          NAME_CONT : { type: "string",editable : true,nullable : false}, 
          CONTINENT : { type: "string",editable : true,nullable : true} 
         } 
        } 
      }); 


var continentDataSource = new kendo.data.DataSource({ 
    data: [ { continent:"1",name:"asia"}, 
      { continent:"2",name:"europ"}, 
      { continent:"3",name:"america"} 
      ] 
}); 

$('#grid).kendoGrid({ 
      toolbar: ["create","save", "cancel",], 
      columns: [ 
       { 
        field: "CD_CONT" , 
        title: "Cd cont" 
       }, 
       { 
        field: "NAME_CONT" , 
        title: "Name cont" 
       }, 
       { 
        field: "CONTINENT" , 
        title: "Continent", 
        editor: function ContinentDropDown(container, options) { 
             $('<input data-text-field="name" data-value-field="continent" data-bind="value:' + options.field + '"/>') 
              .appendTo(container) 
              .kendoDropDownList({ 
               dataSource: continentDataSource, 
               dataTextField: "name", 
               dataValueField: "continent" 
              }); 
            } 
       } 
       ], 
      dataSource: countryDataSource , 
      editable: "inline" 
     }); 

還怎麼設置字段模板,以顯示網格大陸textValue?

回答

0

您忘了在編輯器中添加name嗎?

$('<input data-text-field="name" data-value-field="continent" data-bind="value:' + options.field + '" name='" + options.field + "'/>')