【发布时间】:2016-04-11 21:24:56
【问题描述】:
试图在 dataBound 中选择一个剑道网格行(注意:该行不在网格的第一页上)但它没有选择第三页行。
dataBound: function(e) {
if (id!== "" && id!== undefined && id!== null) {
var grid = e.sender;
grid.select("tr:contains('" + id + "')");
}
},
这里的 id 位于页面 URL 中,并获取 ids 值,如下所示:这将在 dataBound id var 中传递。
id = $location.search().id;
任何想法如何选择第三页行?上述逻辑适用于剑道网格第一页上的行
当尝试选择第三页行时,它只停留在第一页,没有任何选择,因为该行属于网格的第三页。
【问题讨论】:
-
你不能。不是那样的。这些行(
trs)在页面更改时重新创建,因此如果您不在第 3 页中,则无法从中找到tr。您必须尝试另一种方法,也许直接处理数据? -
换句话说,您从 url 片段中读取了一些唯一的 ID 值,并且您想从 Kendo UI Grid 中突出显示相应的项目?在这种情况下,具有相同 ID 的项目位于第三页。看看这个链接docs.telerik.com/kendo-ui/web/grid/how-to/Selection/…
-
尝试遍历数据源,但在页面更改时,其调用数据绑定,导致无限循环。因此没有运气。
-
var grid = e.sender; var data = grid.dataSource.data(); var res = $.grep(data, function (d) { return d.Id == id; });var items = grid.items(); var itemsToSelect = []; items.each(function (idx, row) { var dataItem = grid.dataItem(row); if (res[0].Id==dataItem.Id) { itemsToSelect.push(row); } }); e.sender.select(itemsToSelect); -
这里 grid.items();结果仅适用于第一页。
标签: javascript kendo-ui kendo-grid