gpt4 book ai didi

javascript - Kendo 网格行选择客户端持久化问题

转载 作者:行者123 更新时间:2023-11-27 23:48:49 24 4
gpt4 key购买 nike

我们的选择仍然存在,也许有点太多了。 :D

例如,如果您有一个包含客户端数据的多页剑道网格,请使用客户端剑道网格执行此操作:

  • 选择第 1 页上的一行

  • 转到第 2 页

  • 在第 2 页上选择一行,然后取消选择并选择另一行

  • 返回第 1 页(行选择仍然存在)

  • 返回第 2 页

行选择仍然存在,但之前取消选择的行也被选择。

这个问题有解决办法吗?我们可以在更改事件中使用的东西:

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

谢谢,

j

最佳答案

请尝试使用以下代码片段。

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

如果有任何疑问,请告诉我。

关于javascript - Kendo 网格行选择客户端持久化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32898974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com