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);
}
});
如果这不能解决您的问题,请使用相关数据扩展问题。
PS。 return dataItem.professionLevel = professionLevelData[i].meaning;
您正在更新网格数据源,您确定要更新它吗?或者只是在 table 中显示含义?在那种情况下只是 return professionLevelData[i].meaning;
当我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);
}
});
如果这不能解决您的问题,请使用相关数据扩展问题。
PS。 return dataItem.professionLevel = professionLevelData[i].meaning;
您正在更新网格数据源,您确定要更新它吗?或者只是在 table 中显示含义?在那种情况下只是 return professionLevelData[i].meaning;