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 に答える