嗨,我有一个剑道网格,每行都有删除按钮。当我单击删除按钮时,它要求确认,例如“删除?” 到这里为止都很好。现在我想在单击是或现在时捕捉事件。
当我单击是时要显示一条消息。当我单击否时,我想显示另一条消息。
如何在剑道中捕捉这些事件?
嗨,我有一个剑道网格,每行都有删除按钮。当我单击删除按钮时,它要求确认,例如“删除?” 到这里为止都很好。现在我想在单击是或现在时捕捉事件。
当我单击是时要显示一条消息。当我单击否时,我想显示另一条消息。
如何在剑道中捕捉这些事件?
Uweb 是正确的,你不能挂钩破坏事件。Kendo UI 代码库中有一个示例用于滚动您自己的删除确认。
http://www.kendoui.com/code-library/web/grid/customize-the-delete-confirmation-dialog.aspx
链接的代码示例使用 Kendo 窗口,并为您提供了一种方法来处理是和否的单击事件。如果您只需要自定义删除消息,这里有一个代码片段:
$("#grid").kendoGrid({
columns: [
{
command: [{ name: "edit" }, {
name: "Delete", imageClass: "k-icon k-i-close", click: function (e) {
e.preventDefault();
var dataItem = this.dataItem($(e.target).closest("tr"));
if (confirm('Do you really want to delete my favorite record?')) {
var dataSource = $("#grid").data("kendoGrid").dataSource;
dataSource.remove(dataItem);
dataSource.sync();
}
}
}], title: " ", width: "200px"
}
]
});
我不相信有可能捕捉到这些,破坏事件是内置的并且“按原样”工作。
但是,有点击事件(http ://docs.kendoui.com/api/web/grid#configuration-columns.command.click ),您可以在其中创建一个自定义命令,显示您必须编写的确认对话框(可以例如使用内置的 javascript,confirm()
它看起来不太漂亮,但现在可以使用),您可以完全控制它们触发的按钮和事件。
我同意 Uweb,没有办法捕捉到这样的事件。理想情况下,使用 KendoWindow 自己进行删除对话,您将获得更多自由并看起来像页面 UI。
尝试以下:http: //jsfiddle.net/vojtiik/KZ6pj/8/
添加命令:
command: [{
name: "delete",
text: "delete",
click: _handleDelete,
imageClass: "ui-icon ui-icon-close"
}],
捕获所选项目并将控件传递给窗口:
function _handleDelete(event) {
dataitem = grid.dataItem($(event.currentTarget).closest("tr"));
kWindow.open();
};
做你的事情并删除:
$('.yesbtn').click(function () {
console.log('My message');
grid.dataSource.remove(dataitem);
kWindow.close();
});
我尝试了上面所有的例子都无法解决它。很简单
//Add this line of code to the grid
columns.Command(command => command.Custom("Remove").Click("removeItem"));
//Java script function to remove
function removeItem(e) {
//Get the instance of the grid
var grid = $("#grid").data("kendoGrid");
//Get the selected grid
var tr = $(e.target).closest("tr");
//Get the item from the grid
var data = this.dataItem(tr);
//Remove the item from the datasource
grid.dataSource.remove(data);
//Sync it with the grid
dataSource.sync();
}