剑道网格下拉列表问题

时间:2018-03-18 10:04:54

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

我在我的kendo网格中的一个列上使用自定义模板。一切都很好,当数据检索时,下拉列表显示正确的值。但是,当我单击编辑命令时,该行将变为编辑模式,下拉列表不会显示其值。只有当我点击下拉列表时,项目才会显示为已选中。我想要的是它在编辑模式下显示文本。

点击编辑前 enter image description here

点击编辑后 enter image description here

我的代码:

function customDdlEditor(container, options) {
    $('<input required data-text-field="text" data-value-field="value"  data-bind="value:' + options.field + '"/>')//data-text-field="text" data-value-field="value" data-bind="value:fieldType"
   .appendTo(container)
   .kendoDropDownList({
       autobinds: false,
       dataTextField: "text",
       dataValueField: "value",           
       dataSource: ddl

   });
 }

var ddl = [{ text: "Text", value: "Text" },
        { text: "Date", value: "Date" },
        { text: "Number", value: "Number"}];

var Grid = $("#grid").kendoGrid({
            dataSource: fieldDataSource,                
            columns: [
        ...
        { field: "type", title: "Type", editor: customDdlEditor, template: "#= type #" },
        ...
        ,
            noRecords: true,
        }).data("kendoGrid");

        var fieldDataSource = new kendo.data.DataSource({
            data: gridData,
            pageSize: 50,
            schema: {
                model: {
                    id: "name",
                    fields: {
                        ...,
                        type: { field: "type"},
                        ...
                    }
                }
            }
        });

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果你让你的下拉autoBind:true应该工作。

function customDdlEditor(container, options) {
    $('<input required data-text-field="text" data-value-field="value"  data-bind="value:' + options.field + '"/>')//data-text-field="text" data-value-field="value" data-bind="value:fieldType"
   .appendTo(container)
   .kendoDropDownList({
       autobinds: true, // <-- auto bind true instead
       dataTextField: "text",
       dataValueField: "value",           
       dataSource: ddl

   });
 }