剣道グリッドを選択した行にスクロールする関数を呼び出せるようにしたいです。すでにいくつかの方法を試しましたが、どれもうまくいきませんでした。
たとえば、私はこれを試しました:
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();