2

使用:JSF 1.2 + RichFaces 3.3.3

我们无法将rich:panel 的滚动条链接到rich:tree 组件。选择或突出显示节点发生在 rich:tree 中。但是我们无法将滚动条与突出显示的节点链接,因此即使选择溢出 div,滚动条也不会相应移动,因此突出显示的节点对用户不可见。

如果我们手动向下滚动到特定节点,我们可以看到该节点被突出显示。

我们尝试了以下步骤来解决,但问题仍未解决

  1. 在每次向下或向上箭头按下时调用 js,并使用 container.scrollTop=16 将主 div 的滚动条移动固定高度。

  2. 传递突出显示的节点并使用 treeItem.scrollIntoView(true) 滚动到该节点的视图;和 container.scrollTop。

  3. 试图找出突出显示的节点,然后将其传递给js,但发现在前端很难访问突出显示的节点。

在这个问题上挣扎了2天多。

如何解决这个问题?我们走投无路了吗?

提前感谢您的帮助。拉梅什

代码片段:

        <div class="treespaceheight" >
    <rich:panel styleClass="treeStyleClass">

        <rich:tree styleClass="treewidth" id="tree" 
            iconCollapsed="../../images/ImgNodePlus.gif"    
            iconExpanded="../../images/ImgNodeMinus.gif"                    
            reRender="selectedNode" switchType="client"
            ajaxSubmitSelection="true"
            value="#{commoncontroller.quotevo.quotetreeNode}"                           
            ondblclick="setNodeToggle(event);" oncontextmenu="false"   
            adviseNodeOpened="#{commoncontroller.quotevo.adviseNodeOpened}" 
            adviseNodeSelected="#{commoncontroller.quotevo.adviseNodeSelected}" >                                                                       
        </rich:tree>
    </rich:panel>

    </div>
4

1 回答 1

0

让我们尝试通过 css 类获取选中的节点。我认为你可以使用

jQuery('.rich-tree-node-selected')

得到那个节点!或者您可以通过编辑树属性“selectedClass”来设置自己的类。

于 2013-07-26T02:53:01.373 回答