是否可以展开树视图,滚动到某个节点并将其聚焦在一个函数上?
$("#buttonTest").dxButton({
text: "Test",
onClick: function () {
editTreeView.expandItem(editTreeView.element().find(".dx-treeview-item")[0])
var currentNode = $("#editTreeView").find("[data-item-id=" + 80 + "]");
var scrollable = $("#editTreeView").find(".dx-scrollable").dxScrollable("instance");
scrollable.scrollToElement(currentNode);
$("#editTreeView").find(".dx-treeview-node").removeClass("dx-state-focused");
var currentNode = $("#editTreeView").find("[data-item-id=" + 80 + "]");
currentNode.focus().addClass("dx-state-focused");
}
});
在此示例中,树在第一次单击时打开,并在第二次单击时滚动/聚焦。但我只需点击一下就可以了:)
感谢。
答案 0 :(得分:2)
似乎存在与可滚动高度计算相关的问题。您可以使用setTimeout
函数修复它,如下所示:
$("#buttonTest").dxButton({
text: "Test",
onClick: function () {
//...
setTimeout(function() {
scrollable.scrollToElement(currentNode);
}, 300);
}
});
此解决方案看起来像黑客,但仍然))
我也创建了fiddle。
答案 1 :(得分:0)
在Angular中,scrollTo可以执行以下操作:
onItemClick(e) {
setTimeout(() => {
e.component._scrollableContainer.scrollToElement(e.itemElement.parentElement.lastChild);
}, 400);