【问题标题】:devExtreme TreeView Expand, ScrollTo and FocusdevExtreme TreeView Expand、ScrollTo 和 Focus
【发布时间】:2017-01-03 11:04:19
【问题描述】:

是否可以展开树视图,滚动到一个节点并将其集中在一个功能上?

    $("#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");

    }
});

在此示例中,树在第一次单击时打开,并在第二次单击时滚动/聚焦。但是我想一键搞定:)

谢谢。

【问题讨论】:

    标签: javascript jquery treeview devextreme


    【解决方案1】:

    似乎存在与可滚动高度计算相关的问题。您可以使用setTimeout 函数修复它,如下所示:

    $("#buttonTest").dxButton({
        text: "Test",
        onClick: function () {
            //...
            setTimeout(function() {
                scrollable.scrollToElement(currentNode);
            }, 300); 
        }
    });
    

    这个解决方案看起来像一个黑客,但仍然))

    我也创建了fiddle

    【讨论】:

      【解决方案2】:

      在 Angular 中为 scrollTo 可以做如下:

       onItemClick(e) {
          setTimeout(() => {
              e.component._scrollableContainer.scrollToElement(e.itemElement.parentElement.lastChild);
          }, 400);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-12
        • 1970-01-01
        相关资源
        最近更新 更多