Kendo DropDownList 默认项与 Kendo 网格绑定

Kendo DropDownList default item binding with Kendo Grid

我想将 kendo 下拉列表添加到我的网格中。 除了一件事,一切都会好起来的。 当我想 "Add Record" 使用默认 kendo 创建工具栏时,我无法绑定从下拉列表数据源获取的第一个值。

数据源工作正常。下拉列表也可以正常工作。 如果我手动从下拉列表中选择任何内容,一切正常。

 $scope.mainGridOptions = {

                dataSource: {
                    transport: ...
                    schema: ...
                },

                batch: false,
                       ...    
                toolbar: ["create"],
                columns: [
                    ...,{

                    field: "location_id",
                    title: "Location",

                    editor: function(container,options){

                                var input = $('<input/>');
                                input.attr('name',options.field);
                                input.appendTo(container);

                                input.kendoDropDownList({
                                    autoBind: true,
                                    dataTextField: "text",
                                    dataValueField: "value",
                                    dataSource: locationsDataSource,
                                    index: 0,
                                });
                            }
                    },
                  ...
                ]
            };

我也试过了。除了 "index",我尝试从数据源手动 select 第一项。在视觉上它工作正常。即使还有第三项 selected,但当我单击 "Update" 时,数据不受限制。

input.kendoDropDownList({
     autoBind: true,
     dataTextField: "text",
     dataValueField: "value",
     dataSource: locationsDataSource,
     dataBound: function(e){
        this.select(0);
     }
});

有人吗?

所以,我找到了解决方案。

这似乎是 Kendo DropDownList 的错误。

我在从下拉 dataBound 事件加载数据源后手动绑定它。

开始吧:

editor: function(container,options){

        var input = $('<input/>');
        input.attr('name',options.field);
        input.attr('data-bind','value:' + options.field);
        input.appendTo(container);

        input.kendoDropDownList({
            autoBind: true,
            dataTextField: "text",
            dataValueField: "value",
            dataSource: locationsDataSource,
            index: 0,
            dataBound: function(){

                options.model[options.field] = this.dataItem().value;

            }//end databound

        });//end dropdownlist

}//end editor