Kendo ui 剑道ui requestEnd事件只触发一次。为什么?

Kendo ui 剑道ui requestEnd事件只触发一次。为什么?,kendo-ui,kendo-autocomplete,kendo-datasource,Kendo Ui,Kendo Autocomplete,Kendo Datasource,我有一个剑道网格,其详细信息行由弹出创建模式的可编辑网格填充。在我使用的每个弹出式创建窗口中,有一个剑道自动完成小部件: $("#labResponsibleRegistryNo").kendoAutoComplete({ dataSource: labResponsiblesDS, dataTextField: "fullname",

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

                    $("#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,
                    });
$(“#labResponsibleRegistryNo”).kendoAutoComplete({
数据来源:labResponsiblesDS,
dataTextField:“全名”,
模板:“\
#=lastname+“”+firstname#\
\
ΑΜ \
#=注册号\
\
",
最小长度:3
//建议:是的,
});
我将其与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;
                    }
                }
            }
        });
var labResponsiblesDS=new kendo.data.DataSource({
是的,
运输:{
阅读:{
url:“api/工人”,
键入:“获取”,
数据:{},
数据类型:“json”
},
parameterMap:函数(数据,类型){
如果(类型=='read'){
数据[“工作者”]=data.filter.filters[0]。值;
删除数据过滤器;
}
返回数据;
}
},
模式:{
数据:“数据”,
总计:“总计”
},
requestEnd:函数(e){
日志(“labResponsiblesDS requestEnd”,e);
如果(e.response.data.length>0){
var结果_no=e.response.data.length;

对于(var i=0;i将全名值直接插入到架构中。您只需将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"
}
模式:{
数据:函数(数据){
对于(变量i=0;i
我猜它只命中一次,或者最初导致您最初读取第一页的数据。当服务器筛选设置为“true”时,如果您点击分页按钮,它应该会再次命中。我说得对吗?您有一个网格,并且在网格中使用剑道自动完成..在弹出式编辑中..不是内联..为什么不使用列声明中的“编辑器”选项??