2017-01-03 48 views
0

是否可以展開樹形視圖,滾動到一個節點並將其集中在一個函數上?devExtreme TreeView Expand,ScrollTo和Focus

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

    } 
}); 

在這個例子中,樹被打開,在第一次點擊和滾動/集中在第二次點擊。但我希望它只需點擊一下:)

謝謝。

回答

2

似乎有一個與可滾動高度計算相關的問題。您可以使用setTimeout功能類似下面解決這個問題:

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

這個方案看起來像一個黑客,但仍然))

我創建了fiddle爲好。