0

我有一个剑道网格,其详细信息行填充有弹出创建模式的可编辑网格。在我使用的每个弹出创建窗口中,其中包括一个剑道自动完成小部件:

                    $("#labResponsibleRegistryNo").kendoAutoComplete({
                        dataSource: labResponsiblesDS,
                        dataTextField: "fullname",                            
                        template: "<div class='labResponsiblesTemplate'>\
                                        <span class='template_fullname'> #= lastname + ' ' + firstname #</span>\
                                        <div class='template_details'>\
                                            <span> ΑΜ </span>\
                                            <span class='template_data'> #= registry_no # </span>\
                                        </div>\
                                    <div>",
                        minLength: 3
                        //suggest: true,
                    });

我与 labResponsiblesDS 数据源绑定,如下:

        var labResponsiblesDS=  new kendo.data.DataSource({
            serverFiltering: true,
            transport: {
                read: {
                    url: "api/workers",
                    type: "GET",
                    data: {},
                    dataType: "json"
                },
                parameterMap: function(data, type) {
                    if (type === 'read') {
                        data["worker"] = data.filter.filters[0].value;
                        delete data.filter;
                    }
                    return data;
                }
            },
            schema: {
                data: "data",
                total: "total"
            },
            requestEnd: function(e) {
                console.log("labResponsiblesDS requestEnd", e);
                if(e.response.data.length > 0){
                    var results_no = e.response.data.length;
                    for(var i=0;i<results_no;i++){
                        e.response.data[i].fullname = e.response.data[i].lastname + " " + e.response.data[i].firstname;
                    }
                }
            }
        });

在 labResponsiblesDS 的请求结束事件中,我在从服务器返回的每个结果中创建一个额外的字段“fullname”,它是返回的两个字段“lastname”和“firstname”的串联。“全名”用于自动完成的 dataTextField。

我的问题是,在某些嵌套网格的弹出创建窗口中实现自动完成小部件的理想功能后,当我关闭该弹出窗口并重新打开它或打开另一个嵌套网格的弹出窗口时,requestEnd 事件无法触发。任何建议将不胜感激。提前谢谢

4

1 回答 1

0

将全名值直接插入到您的架构中。您只需要将 schema.data 实现为匿名函数,并在那里形成全名:

schema: {
    data: function(data) {
        for (var i = 0; i < data.length; ++i) {
            data[i].fullname = data[i].lastname + " " + data[i].firstname;
        }
        return data;
    },
    total: "total"
}
于 2014-01-16T20:54:27.287 回答