重新加载kendo ui网格行项目代码执行错误
我有一个使用kendo ui grid的web应用程序。 当我单击一个按钮时,网格加载了Bakbone.js,我可以使用下一个代码删除一行:
$(document).on("click", "#grid tbody tr .ob-delete", function (e) { var item = grid.dataItem($(this).closest("tr")); var check = confirm("Do I delete:" + item.City ); if (check) { grid.removeRow($(this).closest("tr")); } });
要删除的按钮的配置:
command: [ "edit", { name: "destroy", text: "Remove", className: "ob-delete" }]
当我重新加载内容(网格)按下按钮时,如果我想删除一行, item.City
产生错误。
这里有完整的例子
编辑:解决了 ! 感谢@ Whizkid747!
添加
command: [ "edit",{ //... click: deleteRow }]
然后,当单击按钮时,将调用一个函数:
function deleteRow(e){ var item = this.dataItem($(e.currentTarget).closest("tr")); var check = confirm("Do I delete:" + item.City ); if (check) { grid.removeRow($(e.currentTarget).closest("tr")); } }
不确定,但你的网格实际上不是同一个网格,而是旧的(在重新加载之前)创建了一个和第二个网格。
以下行改变了:
var item = $('#grid').data().kendoGrid.dataItem($(this).closest("tr"));
更新版本 。
我建议你只需通过dataSource.data()方法更改数据,而不是重新创建Grid。 或者更改你的逻辑,以便在重新创建它之前实际销毁它。