在剑道网格中,在一行中,当我更改网格单元格值时,它会显示一个脏旗红色标记,表明该值已更改,当我移回同一行并将值恢复到原始值时,即使它显示脏旗红色标记,这是一个例子,所有这些都是在保存之前完成的:值=高,我把它改成了值=低(显示红色标记),现在我把它改成了值=高在保存之前,所以如何比较,如果值是相同的,不要给改变的标记和更新,只有当值改变时更新它,下面是我的代码。
每次编辑被触发,我想保持原始值,然后与新值比较,如果旧的和新的是不同的,我想添加脏单元格类。那么我如何保持原始值呢除非我点击保存,我想在每个编辑更改函数
中保持原始值change: function (e) {
{
options.model.AssignedTo = e.sender.text();
options.model.AssignedToId = e.sender.value();
options.mod`enter code here`el.dirty = true;
container.removeClass("k-edit-cell");
container.addClass("k-dirty-cell");
};
}
试试这样做。我不是全局变量的粉丝,但看起来你这里没有一个选项。
var firstDropDownFieldId = 0;
var _ticketId = 0;
function dropDownEditor(container, options) {
if (firstDropDownFieldId === 0 || _ticketId === 0 || _ticketId !== options.model.Id) {
firstDropDownId = options.model.dropdownId;
_ticketId = options.model.Id;
}
editDropDown(container, options);
}
function editDropDown(container, options) {
$(field).appendTo(container);
var thisDropDownList = $("#DropDown").kendoDropDownList({
autoBind: false,
dataSource: datSource,
change: function(e) {
{
options.model.DropDownField= e.sender.text();
options.model.DropDownFieldId= e.sender.value();
options.model.dirty = true;
container.removeClass("k-edit-cell");
container.addClass("k-dirty-cell");
if (parseInt(e.sender.value()) === firstDropdownId && options.model.Id === _ticketId) {
options.model.dirty = false;
container.removeClass("k-dirty-cell");
container.addClass("k-edit-cell");
}
};
}
}).data("kendoDropDownList");
}
检查下面的线程,它讨论了相同的主题,并包含了建议方法的示例:
如何在保存网格之前仅在旧值和新值不同时比较和显示剑道脏标志