Kendo 删除行数据后网格无法重新加载模板?

Kendo Grid can't reload template again after remove row data?

当我remove第二行数据时,第一行出现一个字段undefined,即无法执行template

{
    field: "professionLevel",
    title: '<@spring.message "技能等级"/>',
    width: 120,
    template: function (dataItem) { //meaning of the template: Just convert English to Chinese,
        for (var i = 0; i < professionLevelData.length; i++) {
            if (professionLevelData[i].value === dataItem.professionLevel) {
                return dataItem.professionLevel = professionLevelData[i].meaning;
            }
        }
    }
}

我认为你做错了什么。使用您提供的代码,我无法挽救足够的时间来重现该问题,因此我将向您展示一个简单的工作案例(类似于您的模板逻辑):

var data = [
    {id: 2, name: "John Doe", age: 33},
    {id: 1, name: "Jane Doe", age: 30},
    {id: 3, name: "Bob Doe", age: 22}
];

var translate = [
    {value: 1, translate: "traslate 1"},
    {value: 2, translate: "traslate 2"},
    {value: 3, translate: "traslate 3"}
];

$("#grid").kendoGrid({
    columns: [
        {
            field: "name",
            template: function (dataItem) {
                var returnValue = dataItem.name;

                for (var i = 0; i < translate.length; i++) {
                    if (dataItem.id === translate[i].value) {
                        returnValue = translate[i].translate;
                    }
                }

                return returnValue;
            }
        },
        {field: "age"},
        {command: "destroy"}
    ],
    dataSource: {
        data: data,
        schema: {
            model: {id: "id"}
        }
    },
    editable: true,
    remove: function (e) {
        console.log("Removing", e.model.name);
    }
});

示例:Translate example

如果这不能解决您的问题,请使用相关数据扩展问题。

PS。 return dataItem.professionLevel = professionLevelData[i].meaning; 您正在更新网格数据源,您确定要更新它吗?或者只是在 table 中显示含义?在那种情况下只是 return professionLevelData[i].meaning;