【发布时间】:2013-07-01 11:12:41
【问题描述】:
我希望能够调用将 Kendo 网格滚动到所选行的函数。我已经尝试了一些方法,但没有一个有效,
例如我试过这个:
var grid = $("#Grid").data("kendoGrid"),
content = $(".k-grid-content");
content.scrollTop(grid.select());
我也试过这个:
var gr = $("#Grid").data("kendoGrid");
var dataItem = gr.dataSource.view()[gr.select().closest("tr").index()];
var material = dataItem.id;
var row = grid.tbody.find(">tr:not(.k-grouping-row)").filter(function (i) {
return (this.dataset.id == material);
});
content.scrollTop(row);
谁能指出我正确的方向? :)
---已编辑---
由于其他原因,我无法绑定到更改事件,因此我必须能够调用一个函数,将列表滚动到选定的行。这就是我尝试使用@Antonis 为我提供的答案。
var grid = $("#Grid").data("kendoGrid")
grid.element.find(".k-grid-content").animate({
scrollTop: this.select().offset().top
}, 400);
当我尝试这样做时,它会稍微向下滚动列表,但不会滚动到所选行。我是否通过调用 scrollTop 以错误的方式使用网格对象?
这也是:
var grid = $("#ItemGrid").data("kendoGrid");
grid.scrollToSelectedRow = function () {
var selectedRow = this.select();
if (!selectedRow) {
return false;
}
this.element.find(".k-grid-content").animate({
scrollTop: selectedRow.offset().top
}, 400);
return true;
};
grid.scrollToSelectedRow();
【问题讨论】:
-
scrollTop()采用整数参数作为距顶部的像素偏移量,而不是要滚动到的元素。例如.scrollTop(0)将滚动到顶部(从顶部偏移 0 个像素)。
标签: jquery asp.net-mvc asp.net-mvc-4 kendo-ui kendo-grid