8

我想为剑道自动完成的 dataTextField 属性组合两个字段。

我的数据源有一个 FirstName 字段和一个 LastName 字段。

schema: {
            data: "d",
            model: {
                id: "PersonId",
                fields: {
                    PersonId: {
                        type: "number",
                        editable: false // this field is not editable
                    },
                    FirstName: {
                        type: "text",
                        validation: { // validation rules
                            required: true // the field is required
                        }
                    },
                    LastName: {
                        type: "text",
                        validation: { // validation rules
                            required: true // the field is required
                        }
                    }
                }
            }
        }

有没有办法可以将自动完成配置为显示 FirstName + LastName?

也许我必须对数据源做一些事情,如果是这样,有人可以提供一个简单的例子吗?

谢谢!

4

2 回答 2

9

你应该使用模板

例如:

template:"The name is : #= FirstName # #=LastName #"
于 2013-02-27T17:21:35.920 回答
7

使用模板是一个有效的解决方案。但是,如果您希望始终在模型上访问复合或计算字段,您可以在模式定义中定义解析函数

schema: {
    data: "d",
    model: {
        id: "PersonId",
        fields: {
            PersonId: {
                type: "number",
                editable: false // this field is not editable
            },
            FirstName: {
                type: "string",
                validation: { // validation rules
                    required: true // the field is required
                }
            },
            LastName: {
                type: "string",
                validation: { // validation rules
                    required: true // the field is required
                }
            },
            Name: {
                type: "string"
                // add any other requirements for your model here
            }
        }
    },
    parse: function (response) {
        var values = response.d,
            n = values.length,
            i = 0,
            value;
        for (; i < n; i++) {
            value = values[i];
            value.Name = kendo.format("{0} {1}",
                value.FirstName,
                value.LastName);
        }

        return response;
    }
}

parse 函数在使用服务器响应之前对其进行预处理,因此您可以修改现有字段或附加新字段。然后,您可以直接在使用模型的任何控件中引用字段。

于 2013-07-17T16:08:06.793 回答