2

環境: Tomcat 6、jsf 2.0、プライム フェイス 2.2.1、chrome エクスプローラー

左の展開されたツリーの「ViewDetail」リンクをクリックして、製品の詳細情報を表示したい。しかし、以下のコードは機能しませんでした。次に、属性 ajax="false" をリンクに追加すると、うまくいくようです。ただし、ページの左側にある「p:treeTable」も更新され、折りたたまれています。では、これを行うにはどうすればよいですか。左側の展開されたツリー ノードのリンクをクリックし、ページの右側に情報を表示して、左側の展開されたツリー ノードを展開したままにします。

<h:form id="BizTypeTreeTableForm" >
        <p:layout fullPage="true">
            <p:layoutUnit id="left" position="left" scrollable="true"     width="350" resizable="true" closable="false" collapsible="true" minWidth="250" >
                  <p:treeTable id="BizTypeTreeTable" value="#    {treeTableController.root}" var="treeTable">
                      <p:column>
                              <f:facet name="header">ProductName</f:facet>
                              <h:outputText value="#{treeTable.TYPENAME.value }" />
                          </p:column>
                          <p:column style="width:5%">
                              <f:facet name="header">Action</f:facet>
                              <p:commandLink value="ViewDetail" update="content"      action="#{treeTableController.showDetail}">
                              </p:commandLink>
                      </p:column>
                      </p:treeTable>
            </p:layoutUnit>
            <p:layoutUnit id="center" rendered="true" position="center"    style="text-align:left;" scrollable="true" >
                <h:outputText value="Please click the left tree node" rendered="#    {allTabManager.productObject.TypeNo.value eq null}"/>
            <div id="content" class="ui-widget">
                    <div class="post">
                    <ui:insert name="content_tab" >...</ui:insert>
                </div>
                </div>
            </p:layoutUnit>
         </p:layout>
    </h:form>
4

2 に答える 2

6

update、プレーンなHTML要素ではなく、ツリー内の実際のJSFコンポーネントを指している必要があります。

交換

<div id="content" class="ui-widget">

<h:panelGroup layout="block" id="content" class="ui-widget">

のパネルグループは、の代わりにlayout="block"をレンダリングします。<div><span>

于 2011-03-23T11:27:38.073 に答える
0

とは同じレベルでdivはないため、id への参照は正しくないと思います。p:layout

update=":content"ただし、を使用して絶対 ID を取得するか、全体を更新することができますp:layoutUnit

<p:commandLink value="ViewDetail" 
               update="center" 
               action="#{treeTableController.showDetail}">
于 2011-03-23T06:48:05.223 に答える