2

嗨,我有一个剑道网格,每行都有删除按钮。当我单击删除按钮时,它要求确认,例如“删除?” 到这里为止都很好。现在我想在单击是或现在时捕捉事件。

当我单击是时要显示一条消息。当我单击否时,我想显示另一条消息。

如何在剑道中捕捉这些事件?

4

4 回答 4

2

Uweb 是正确的,你不能挂钩破坏事件。Kendo UI 代码库中有一个示例用于滚动您自己的删除确认。

http://www.kendoui.c​​om/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"
        }
    ]
});
于 2013-12-12T23:07:11.777 回答
1

我不相信有可能捕捉到这些,破坏事件是内置的并且“按原样”工作。

但是,有点击事件(http ://docs.kendoui.c​​om/api/web/grid#configuration-columns.command.click ),您可以在其中创建一个自定义命令,显示您必须编写的确认对话框(可以例如使用内置的 javascript,confirm()它看起来不太漂亮,但现在可以使用),您可以完全控制它们触发的按钮和事件。

于 2013-07-26T07:36:11.307 回答
0

我同意 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();
    });
于 2013-07-26T10:58:43.747 回答
0

我尝试了上面所有的例子都无法解决它。很简单

//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();
   }
于 2015-08-13T15:06:40.777 回答