2016-07-02 2 views
0

Я хочу реализовать пользовательский редактор настройки кендо Grid (dropdownlist).kendo Grid custom edit send [object Object]

everythin в порядке, но если создать новую запись или обновление существует запись, когда выпадающий столбец является нулевым, я получил ошибку в обновлении, в отладке я видел '[объект Object] послано в качестве значения континента колонки, но когда выпадающий колонок имеет значение, я могу изменить выпадающее значение, а запись обновления - ОК!

мой код:

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 + "'/>')