Kendo ui 剑道网格删除-确认窗口问题

Kendo ui 剑道网格删除-确认窗口问题,kendo-ui,kendo-grid,crud,destroy,confirm,Kendo Ui,Kendo Grid,Crud,Destroy,Confirm,我在删除项目时遇到确认弹出窗口问题。当我点击“删除”时,确认窗口弹出不止一次,我不知道为什么。第二个问题是如何更改窗口的文本?我尝试了此代码,但不起作用: columns: [ ..., {command: [{name: "destroy", text: "Delete Item", click: deleteItem}], title: " ", width: "100px"} ] 和删除功能: function deleteItem(e) { var it

我在删除项目时遇到确认弹出窗口问题。当我点击“删除”时,确认窗口弹出不止一次,我不知道为什么。第二个问题是如何更改窗口的文本?我尝试了此代码,但不起作用:

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();
   }
}
编辑:
我发现的第二个问题是,单击“更新”按钮后,网格中的一些项目被删除了

请检查以下示例,并告知是否有帮助:


检查以下示例,并告知是否有帮助:


您可能必须在删除处理程序中每隔一段代码之前尝试使用以下代码

e.preventDefault()
这将阻止执行默认窗口,并为确认弹出窗口提供空间。因此,只允许在您前面有一个窗口
我希望这会有所帮助

也许您必须在删除处理程序中每隔一段代码之前尝试使用以下代码

e.preventDefault()
这将阻止执行默认窗口,并为确认弹出窗口提供空间。因此,只允许在您前面有一个窗口
我希望这有帮助

重复确认是由于您将命令绑定到网格提供的名称“destroy”。命令正在启动,显示内置确认,然后显示您的确认。如果您希望自己处理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而不是类


有关与您尝试执行的操作类似的工作示例,请参阅。

重复确认是由于您将命令绑定到网格提供的名称“destroy”。命令正在启动,显示内置确认,然后显示您的确认。如果您希望自己处理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而不是类


请参阅,以获取与您尝试执行的操作类似的工作示例。

如果可能,请您通过更新更多代码或创建JSFIDLE来详细说明您的问题?您好,删除我修复的项目,其中缺少Windows的div。。。但是你能帮我解决第二个问题吗?单击更新按钮后,从网格中删除一个或多个项目我的代码在这里。。。但是不起作用,因为我的服务只是本地的。如果可能的话,你可以通过更新一些代码或创建一个JSFIDLE来详细说明你的问题吗?嗨,删除我用缺少的窗口div修复的项目。。。但是你能帮我解决第二个问题吗?单击更新按钮后,从网格中删除一个或多个项目我的代码在这里。。。但不工作,因为我的服务只是本地OK,我修复代码,并尝试在浏览器中调试,但我发现这个错误,也许这就是为什么我的窗口有问题。。。你们知道为什么无法初始化项吗?好的,我修复代码并尝试在浏览器中调试,但我发现了这个错误,也许这就是我在窗口中遇到问题的原因。。。您知道为什么无法初始化项吗?我忘记了窗口id为的div:)。。所以删除工作,但我发现与更新问题。。。单击“更新”按钮后,将从网格中删除某些项目或删除所有项目。。这是随机的,我的代码在这里。。。但不工作,因为我的服务只是本地的,我忘记了窗口id为的div:)。。所以删除工作,但我发现与更新问题。。。单击“更新”按钮后,将从网格中删除某些项目或删除所有项目。。这是随机的,我的代码在这里。。。但不工作,因为我的服务只是本地的