【问题标题】:kendo Grid custom edit send [object Object]kendo Grid自定义编辑发送[object Object]
【发布时间】:2016-07-02 09:39:58
【问题描述】:

我想实现 kendo Grid 自定义编辑器(下拉列表)。

一切正常,但如果在下拉列为空时创建新记录或更新存在记录,我在更新时出错,在调试时我看到了 '[object 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"
        });

还有如何设置字段模板以在网格中显示 Continent 的 textValue?

【问题讨论】:

    标签: kendo-ui grid editor


    【解决方案1】:

    您是否忘记在编辑器中添加name

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多