2015-10-02 21 views
1

我們有選擇持續存在,可能只是有點太多。 :dKendo Grid行選擇客戶端持久性問題

例如,如果你有一個客戶端的數據一個多劍道網格,一個客戶端劍道電網做到這一點:

  • 在頁面選擇行1

  • 轉到第2頁

  • 第2頁上選擇行然後取消選擇它並選擇另一行

  • 回到1(行塞萊ction仍然存在)

  • 回到第2頁

行選擇仍然存在,而且還選擇了先前取消的行。

有沒有解決方案?這是我們可以改變事件中使用:

http://dojo.telerik.com/@crunchfactory/uhEZe/7

謝謝

Ĵ

+0

Kendo網格不會在頁面更改時保存列選擇。這是一種非常規的行爲。我想你有一些額外的代碼來保存選擇。 –

回答

1

請與下面的代碼片段嘗試。

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.2.902/styles/kendo.common-material.min.css" /> 
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2015.2.902/styles/kendo.material.min.css" /> 

    <script src="https://kendo.cdn.telerik.com/2015.2.902/js/jquery.min.js"></script> 
    <script src="https://kendo.cdn.telerik.com/2015.2.902/js/kendo.all.min.js"></script> 
</head> 
<body> 
    <script src="http://demos.telerik.com/kendo-ui/content/shared/js/products.js"></script> 

    <div id="example"> 
     <div id="grid"></div> 

     <script> 
      $(document).ready(function() { 

       var selectedOrders = []; 
       var idField = "ProductID"; 


       $("#grid").kendoGrid({ 
        dataSource: { 
         data: products, 
         schema: { 
          model: { 
           fields: { 
            ProductName: { type: "string" }, 
            UnitPrice: { type: "number" }, 
            UnitsInStock: { type: "number" }, 
            Discontinued: { type: "boolean" } 
           } 
          } 
         }, 
         pageSize: 20 
        }, 
        height: 550, 
        scrollable: true, 
        sortable: true, 
        selectable: "multiple, row", 
        pageable: { 
         input: true, 
         numeric: false 
        }, 
        columns: [ 
         "ProductName", 
         { field: "UnitPrice", title: "Unit Price", format: "{0:c}", width: "130px" }, 
         { field: "UnitsInStock", title: "Units In Stock", width: "130px" }, 
         { field: "Discontinued", width: "130px" } 
        ], 
        change: function (e, args) { 
         var grid = e.sender; 
         var items = grid.items(); 
         items.each(function (idx, row) { 
          var idValue = grid.dataItem(row).get(idField); 
          if (row.className.indexOf("k-state-selected") >= 0) { 
           selectedOrders[idValue] = true; 
          } else if (selectedOrders[idValue]) { 
           delete selectedOrders[idValue]; 
          } 
         }); 
        }, 
        dataBound: function (e) { 
         var grid = e.sender; 
         var items = grid.items(); 
         var itemsToSelect = []; 
         items.each(function (idx, row) { 
          var dataItem = grid.dataItem(row); 
          if (selectedOrders[dataItem[idField]]) { 
           itemsToSelect.push(row); 
          } 
         }); 

         e.sender.select(itemsToSelect); 
        } 
       }); 
      }); 
     </script> 
    </div> 


</body> 
</html> 

讓我知道是否有任何問題。

+0

你釘了它 - 謝謝你! – crunch