2

我有一个类似这样的 Kendo UI 组合框对象:

widget: "kendoComboBox",
            options: {
                dataTextField: "#:userFirstName#&nbsp#:userLastName#",
                dataValueField: "userId",

                template: "#:userFirstName#&nbsp#:userLastName#",
                change: function (e) {
                    that.model.fn.bringUserData();
                }
            }

我可以安排模板,但我不能 dataTextField 值取决于该模板。可以将其设为“userId”等。但似乎无法将所选值设置为#:userFirstName# #:userLastName#。(dataTextFieldTemplate 不起作用。)

你能帮我解决这个问题吗?

4

1 回答 1

7

正确,您不能使其成为两个字段的组合。它本身必须是一个字段。您可以做的是在从 DataSource 读取数据时创建一个附加字段,该字段是这两个字段的连接。您可以向您的 DataSource 定义添加如下内容:

var dataSource = new kendo.data.DataSource({
    transport: {
        read: {
              url: "..."
        }
    },
    schema: {
        parse: function(response) {
            $.each(response, function(idx, elem) {
                elem.fullName = elem.firstName + " " + elem.lastName;
            });
            return response;
        }
    }
});

那么组合框的选项很简单:

options: {
    dataTextField: "fullName",
    dataValueField: "userId",
    ...
}

在此处查看实际操作:http: //jsfiddle.net/OnaBai/12hpLeux/1/

于 2014-08-25T15:58:28.450 回答