簡體   English   中英

Kendo網格行選擇客戶端持久性問題

[英]Kendo Grid Row Selection Client-side Persistence Issue

我們的選擇還在持續,也許只是太多了。 :d

例如,如果您有一個包含客戶端數據的多頁面劍道網格,請使用客戶端劍道網格來執行此操作:

  • 在第1頁上選擇一行

  • 轉到第2頁

  • 在第2頁上選擇一行,然后取消選擇它並選擇另一行

  • 返回第1頁(行選擇仍然存在)

  • 返回第2頁

行選擇仍然存在,但也會選擇先前取消選擇的行。

有針對這個的解決方法嗎? 我們可以在change事件中使用的東西:

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

謝謝,

Ĵ

請嘗試使用以下代碼段。

<!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>

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM