Javascript 重新加载剑道ui网格行项目代码时执行错误
我有一个带有剑道ui网格的web应用程序。当我单击一个按钮时,网格将加载Bakbone.js,我可以删除一行代码如下:Javascript 重新加载剑道ui网格行项目代码时执行错误,javascript,jquery,backbone.js,kendo-ui,kendo-grid,Javascript,Jquery,Backbone.js,Kendo Ui,Kendo Grid,我有一个带有剑道ui网格的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)
$(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"));
我建议您通过该方法更改数据,而不是重新创建网格。或者更改您的逻辑,以便在重新创建小部件之前实际小部件。它似乎已解决,但添加了更多内容,它会重复确认多次。带有另一个按钮的示例可以使用上面提到的按钮更新网格删除代码。如果它仍然不起作用,我会看一看。