2015-10-02 3 views
1

У нас есть выбор, который, возможно, слишком много. : DKendo Grid Row Selection Клиентская проблема с сохранением

Например, если у вас есть многостраничный кендо сетка с клиентскими данными, делает это с клиентской стороной кендо сеткой:

  • Выберите строку на странице 1

  • Перейти к Page 2

  • Выберите строку на странице 2 THEN снимите его и выберите другую строку

  • вернуться назад на страницу 1 (строка Селе ий сохраняется)

  • Вернуться на страницу 2

выбор строк сохраняется, но и строка, которая была ранее снята также выбрана.

Есть ли решение для этого? Что-то мы можем использовать в случае изменения:

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

Спасибо,

J

+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

Смежные вопросы