【问题标题】:kendo ui requestEnd event fires only once. Why?kendo ui requestEnd 事件仅触发一次。为什么?
【发布时间】:2014-01-16 09:49:56
【问题描述】:

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

                    $("#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”的连接。 "fullname" 用于自动完成的 dataTextField。

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

【问题讨论】:

  • 我猜它只会命中一次,或者最初会导致您最初读取第一页的数据。如果您点击分页按钮,服务器过滤设置为“true”,它应该会再次点击。我说对了吗??您有一个网格,并且您在网格中使用剑道自动完成功能..这是在弹出编辑中..不是内联..那为什么不在列声明中使用“编辑器”选项??

标签: kendo-ui kendo-autocomplete kendo-datasource


【解决方案1】:

将全名值直接插入到您的架构中。您只需要将 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"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2020-12-11
    相关资源
    最近更新 更多