0

PrimeFaces3.4を使用しています。左側のレイアウトユニットにp:layoutがp:treeあり、中央のユニットにパネルのリストがあります。ツリー上のノードを選択/選択解除した後、パネルをレンダリング/レンダリング解除しています。一般的な構造は次のようになります。

<p:layoutUnit position="west" minSize="150" size="300">
<h:form id="tree"> 
<p:tree id="tree" value="#{tree.root}" var="node"
    selectionMode="multiple" selection="#{tree.selectedNodes}">  

    <p:ajax event="select" listener="#{tree.treeSelect}" process=":main" update=":main:panels"/>
    <p:ajax event="unselect" listener="#{tree.treeUnselect}" process=":main" update=":main:panels"/>
    <p:treeNode>  
        <h:outputText value="#{node.title}" />  
    </p:treeNode>  

</p:tree>
</h:form>
</p:layoutUnit>


<p:layoutUnit position="center" header="Panels" styleClass="noscroll">
<h:form id="main"> 
<p:outputPanel id="panels" styleClass="center-panels">

<!-- here go the panels -->

</p:outputPanel>
</h:form>
</p:layoutUnit>

ただし、パネルには入力フィールドが含まれています。ツリーをクリックすると入力フィールドがリセットされることに気付いたので、プロセスを追加しましたattribute:main、、で試しましたが:main:panels@allどれも機能していません。

そのシナリオを正しく処理するにはどうすればよいですか?PrimeFacesのバグ(機能であるバグ)では、使用中に単一のフォームを使用することはできませんp:layout。少なくとも、これはドキュメントに記載されています。そして、複数のフォームを使用して、データを失っています。

4

1 に答える 1

-1

これは私のために働いています:

<p:layoutUnit position="west" header="Opciones" size="175">
                <h:form id="form1">
                    <p:panelMenu style="width:200px">   
                        <p:submenu label="Clientes" >
                            <p:menuitem value="Adicionar" update=":form2" actionListener="# {templateMB.templateAddCliente}" />
                            <p:menuitem value="Buscar"/>
                            <p:menuitem value="Listado"/>
                            <p:menuitem value="Editar"/>
                        </p:submenu> 
                        <p:submenu label="Contratos">  
                            <p:menuitem value="Adicionar"  icon="ui-icon-close"/>  
                        </p:submenu>  
                        <p:separator/>  
                        <p:submenu label="Suplementos" >  
                            <p:menuitem value="Adicionar" icon="ui-icon-signal"/>  
                        </p:submenu>  
                    </p:panelMenu>
                </h:form>
            </p:layoutUnit>
            <p:layoutUnit position="center">
                <h:form id="form2">  
                    <ui:include src="#{templateMB.centerTemplate}" />  
                </h:form> 
            </p:layoutUnit>
于 2013-02-25T16:44:58.103 に答える