如何使用JSF自动滚动到primefaces中的选定treenode?

问题描述:

我有一个巨大的树组件(可滚动)和编辑组件,我可以编辑选定节点的页面。在编辑窗口中编辑选定节点后,我有一个更新树组件的ajax事件。如何使用JSF自动滚动到primefaces中的选定treenode?

我的问题是树更新100%,但所选节点现在滚动出视图。我怎样才能回滚到选定的节点。还是有办法更新树中选定的节点,而不是完全更新树?

我遇到过一模一样的情况,这里是我的解决方案,基于JavaScript:

$('.scrollable-tree-container').each(function(index) { 
    var position = $(this).find('.ui-state-highlight').position(); 
    if (typeof position != 'undefined') { 
     $(this).scrollTop(position.top + $(this).scrollTop() - 300); 
    } 
}); 

它是如何工作的?

  • 指定容器提供滚动条
  • 查找突出显示的节点
  • 阅读它的位置和滚动有

您可能需要添加额外的选择,以避免对其他部件的副作用。由于我的总树高为800像素,因此我在这里减去了300像素。这样,选定的节点将位于中间的某个位置(而不是顶部)。 未定义的检查仅在您不能确定调用函数时总是选择一个节点的情况下才需要。

+0

我使用JSF来组建我的树。在什么地方我将这行添加到了我的jsf中? – Raja