删除项目时确认弹出窗口有问题。当我点击“删除”时,确认窗口弹出的次数超过一次,我不知道为什么。第二个问题是我如何改变那个窗口的文本?我试过这段代码但是不行:
columns: [
...,
{command: [{name: "destroy", text: "Delete Item", click: deleteItem}],
title: " ", width: "100px"}
]
和删除功能:
function deleteItem(e) {
var item = this.dataItem($(e.currentTarget).closest("tr"));
if (confirm("delete item " + item.Name + " ?")) {
var grid = $("grid").data("kendoGrid");
grid.dataSource.remove(item);
grid.dataSource.sync();
grid.refresh();
}
}
编辑: 我发现的第二个问题是,点击更新按钮后,网格中的一些项目被删除
答案 0 :(得分:0)
检查以下示例并告诉我它是否有帮助:
答案 1 :(得分:0)
可能你必须尝试在删除处理程序
之前使用以下代码e.preventDefault()
这将阻止默认窗口的执行,并为确认弹出提供空间。因此,只允许在你面前的一个窗口 我希望这有帮助
答案 2 :(得分:0)
重复确认是由于您将命令绑定到名称" destroy"这是网格提供的built-in command。该命令正在触发,显示内置确认,然后显示您的确认。如果你想自己处理destroy方法,只需将命令重命名为" destroy"这是您独有的,因此默认命令事件不会触发:
{command: [{name: "delete", text: "Delete Item", click: deleteItem}], title: " ", width: "100px"}
您的deleteItem函数中似乎还有其他一些问题。请尝试以下方法:
function deleteItem(e) {
var item = this.dataItem($(e.target).closest("tr"));
if (confirm("delete item " + item.Name + " ?")) {
var grid = $("#grid").data("kendoGrid");
grid.dataSource.remove(item);
grid.dataSource.sync();
grid.refresh();
}
}
注意我已将您的代码更改为使用 e.target 而不是 e.currentTarget ,并修改了您的jQuery选择器用于查找 #grid 而不是 grid ,假设您要查询ID而不是一类。
请参阅this snippet,了解与您尝试的相似的工作示例。