我希望能够调用一个函数,使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)。 - CodingWithSpike