2013-08-22 44 views
4

我使用Kendo UI 2013.2.716和JQuery 2.0.3,我放置grid我的網頁上,我的問題是:如何判斷kendo UI網格中的destroy命令已經銷燬了哪些內容?

有誰知道如何分辨哪些已被破壞命令銷燬從電網?

例如:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta charset="utf-8" /> 
    <link href="kendo.common.min.css" rel="stylesheet" /> 
    <link href="kendo.default.min.css" rel="stylesheet" /> 
    <script type="text/javascript" src="jquery-2.0.3.min.js"></script> 
    <script type="text/javascript" src="kendo.all.min.js"></script> 
</head> 
<body>    
<div id="grid"></div> 
<script type="text/javascript"> 
    $(document).ready(function() {  
     var products = []; 
     for(var i = 1; i <= 40; i++) { 
      products.push({ 
       ProductId: i, 
       ProductName: "Product " + i 
      }); 
     }  
     $("#grid").kendoGrid({ 
      dataSource: { 
       data: products, 
       schema: { 
        model: { 
         id: "ProductId", 
         fields: { 
          ProductName: { type: "string" }, 
         } 
        } 
       }, 
       requestEnd: function (e) { 
        if (e.type === "destroy") { 
         alert("OK, so something got destroyed, but what??"); 
        } 
       } 
      }, 
      editable: "inline", 
      columns: [ 
       "ProductName", 
       { command: "destroy", title: " ", width: "100px" } 
      ] 
     }); 
    }); 
</script> 
</body> 
</html> 

我發現requestEnd回調在documentation,但我完全狼狽爲知道這是摧毀該項目將。我只需要該項目的ID,以便我可以適當更新網頁的其他部分。

我想知道是否需要事先捕獲它。

+0

閱讀本http://demos.kendoui.c​​om/web/grid/editing.html – Jaimin

回答

1

感謝@Brett您指出運輸裝置上的破壞財產。此代碼的把戲 - 讓我捕捉到什麼被破壞(見transport.destroy部分):

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta charset="utf-8" /> 
    <link href="kendo.common.min.css" rel="stylesheet" /> 
    <link href="kendo.default.min.css" rel="stylesheet" /> 
    <script type="text/javascript" src="jquery-2.0.3.min.js"></script> 
    <script type="text/javascript" src="kendo.all.min.js"></script> 
</head> 
<body>    
<div id="grid"></div> 
<script type="text/javascript"> 
    $(document).ready(function() {  
     $("#grid").kendoGrid({ 
      dataSource: { 
       schema: { 
        model: { 
         id: "ProductId", 
         fields: { 
          ProductName: { type: "string" }, 
         } 
        } 
       }, 
       transport: { 
        read: function (options) { 
         var products = []; 
         for(var i = 1; i <= 40; i++) { 
          products.push({ 
           ProductId: i, 
           ProductName: "Product " + i 
          }); 
         }  
         options.success(products); 
        }, 
        destroy: function (options) {       
         var data = $("#grid") 
          .data("kendoGrid").dataSource.data(); 
         var products = []; 
         for(var i = 0; i < data.length; i++) { 
          if (data[i].ProductId !== options.data.ProductId) { 
           products.push(data[i]) 
          } 
         } 
         options.success(products); 

         alert("Woo hoo - the product with the ID: " 
          + options.data.ProductId + " was destroyed!"); 
        } 
       } 
      }, 
      editable: "inline", 
      columns: [ 
       "ProductName", 
       { command: "destroy", title: " ", width: "100px" } 
      ] 
     }); 
    }); 
</script> 
</body> 
</html> 
2

您需要在數據源上配置transport對象。在你目前的配置中,有沒有真的被破壞?當然,該項目可能會從您的網格中消失,但我想知道它是否仍然存在於數據源中。也許這就是你的意圖。

http://docs.kendoui.com/api/framework/datasource#configuration-transport.destroy

如果你只是在尋找一種方式來獲得在多數民衆贊成被破壞的數據,勾入transport對象的parameterMap()功能。在那裏你可以在執行操作之前操作被刪除的對象。

http://docs.kendoui.com/api/framework/datasource#configuration-transport.parameterMap

+0

+ 1 - 謝謝你的回答 - 它讓我走上了正軌!我在交通工具上使用了破壞屬性,並使用我自己的函數捕獲了首先被銷燬的物品 – kmp

+0

很高興我可以幫忙@kmp – Brett

相關問題