1

ツリーとチェックボックスを選択して、primefaces [3.4] ショーケースを使用しています。

http://www.primefaces.org/showcase-labs/ui/treeSelectionCheckbox.jsf

ノードのラベルをクリックするために ap:ajax イベントを添付することは可能ですか??

ユーザーがツリーのノード ラベルをクリックしたとき、必ずしもユーザーがそれらを選択したとき (チェックボックスをクリックしたとき) ではなく、子オブジェクトでパネルを更新する必要があります。

前もって感謝します。

4

3 に答える 3

2

ページ上の他の要素を表示/非表示にするのと同じくらい簡単なことをするために、サーバーを呼び出す必要はありません。Primefaces はこれでより良い仕事をするはずです。それまでの間、この JavaScript コードを検討してください...

<p:treeNode type="parent" styleClass="parent">
    <h:outputText value="#{myLabel}"/>
</p:treeNode>

...

<script>
jQuery(".parent > .ui-tree-selectable > .ui-treenode-label").each(function(){
    var label = jQuery(this);

    label.click(function(){
        label.siblings(".ui-tree-toggler").click();
    });
});
</script>
于 2013-04-24T19:55:19.003 に答える
0

これは、treeNode テンプレート内にチェックボックスを追加し、selectionMode を single に変更するだけで、これを回避する方法です。

<p:tree value="#{treeBean.root}" var="node" dynamic="true" cache="false"  
            selectionMode="single"  selection="#{treeBean.selectedNode}" id="tree">  

        <p:ajax event="select" update=":form:messages" listener="#{treeBean.onNodeSelect}" />  

        <p:treeNode>  
            <p:selectBooleanCheckbox  id="treeCheck" value="#{node.selected}"/> 
            <h:outputText value="#{node.name}" />  
        </p:treeNode>  
    </p:tree>  

必要に応じて、親/子ノードをチェック/チェック解除するロジックを手動でコーディングする必要があることを考慮してください。

ありがとう。

于 2012-11-03T01:48:29.953 に答える
0

このp:tree要素は、次の 4 つのイベントを処理できます。

+---------------------+-------------------------------------- --+----------------------------+
| | イベント | イベント リスナー パラメータ | 解雇 |
+---------------------+-------------------------------------- --+----------------------------+
| | 拡大する | org.primefaces.event.NodeExpandEvent | ノードが展開されたとき。| |
| | 崩壊 | org.primefaces.event.NodeCollapseEvent | ノードが折りたたまれたとき。| |
| | 選択 | org.primefaces.event.NodeSelectEvent | ノードが選択されたとき。| |
| | 選択解除 | org.primefaces.event.NodeUnselectEvent | ノードが選択されていないとき。| |
+---------------------+-------------------------------------- --+----------------------------+

選択イベントはあなたが望むものです。

編集:ツリーでチェックボックスを使用する場合、これは機能しません。

于 2012-10-23T06:41:55.350 に答える