2013-07-26 96 views
2

嗨我有一個Kendo網格與每行刪除按鈕。當我點擊刪除按鈕時,它要求確認,如「刪除?」到這裏就沒事了。現在,當我點擊「是」或「現在」時,我想捕捉事件。劍道網格行刪除配置

當我點擊是想要顯示一條消息。當我點擊否,我想顯示另一條消息。

如何在劍道中捕捉這些事件?

回答

1

我不認爲有可能捕捉到這些,銷燬事件是內置的,並「按原樣」工作。

然而,有click事件(http://docs.kendoui.com/api/web/grid#configuration-columns.command.click),您可以創建顯示,你必須寫一個確認對話框(可以如使用內置confirm()的JavaScript它並不十分好看的自定義命令,而是將工作現在),你可以完全控制它們觸發的按鈕和事件。

+0

嘿我明白了.. var check = confirm(「Are you sure?」); if(check){}這對我有用 – jestges

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(); 
    }); 
2

UweB是正確的,你不能掛鉤到銷燬事件。 Kendo UI代碼庫中有一個用於滾動您自己的刪除確認的示例。

http://www.kendoui.com/code-library/web/grid/customize-the-delete-confirmation-dialog.aspx

鏈接的代碼示例使用劍道窗口,併爲您提供一種方法來處理click事件既肯定又否定。如果你只需要一個定製刪除消息,這裏的代碼片段:

$("#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" 
     } 
    ] 
}); 
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(); 
    }