Kendo DropDownList与Kendo Grid绑定的默认项目

时间:2015-03-09 07:44:35

标签: kendo-ui kendo-grid kendo-dropdown

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

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

 $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”,我试图从dataSource手动选择第一项。在视觉上它工作正常。即使选择了第三项,但是当我点击“更新”时,数据也没有限制。

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

任何?

1 个答案:

答案 0 :(得分:2)

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

这似乎是Kendo DropDownList的一个错误。

我在从dropdown dataBound事件加载dataSource后手动绑定它。

我们走了:

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