2011-05-15 85 views
0

我有一個Ajax化選項卡的JSF 2.0 web應用程序。隱藏組件,然後再顯示它,值不保存

要通過有條件styleClass`ING切換標籤我展示一個和隱藏的其他人(無論是有條件render="#{x==y}"或與display:none/block

在任何情況下,我得到的標籤,以顯示或正確地隱藏。

問題是在輸入框中輸入的值沒有保留拋出一個選項卡的隱藏/顯示(換句話說,如果您在選項卡1中輸入一些值,請轉到選項卡2並返回選項卡1,值爲不保留)。

我用這個<f:ajax>標籤上標籤選擇(由散列變化事件引發)

<h:form id="processFragment" prependId="false" class="hide"> 
    <h:inputText id="fragment" value="#{fbean.fragment}"> 
     <f:ajax event="change" execute="contentSection" listener="#{fbean.processFragment}" 
      render="contentSection" /> 
    </h:inputText> 
</h:form> 
<div> 
    <h:form id="contentSection"> 
     <ui:insert name="content" /> 
    </h:form> 
</div> 

謝謝!

的代碼顯示標籤欄和標籤內容:

<ui:define name="content"> 
    <f:view> 
     <h:panelGroup styleClass="navBar"> 
      <ul> 
       <ui:repeat value="#{hello.tabList}" var="tab"> 
        <li onclick="window.location='\##{tab.tabHash}'"><h:panelGroup 
          styleClass="#{hello.chose == tab.tabHash?'activeTab':''}"> 
          <h:outputText value="#{tab.tabName}" /> 
         </h:panelGroup> 
        </li> 
       </ui:repeat> 
      </ul> 
     </h:panelGroup> 
     <h:panelGroup id="contentPanels" styleClass="tabContentBar"> 
      <c:forEach items="#{hello.tabList}" var="tab"> 
       <h:panelGroup rendered="#{hello.chose == tab.tabHash}"> 
        <!-- <h:panelGroup styleClass="#{hello.chose == tab.tabHash?'shownTabContents':'hiddenTabContents'}"> --> 
        <ui:include src="#{tab.tabFile}" /> 
       </h:panelGroup> 
      </c:forEach> 
     </h:panelGroup> 
    </f:view> 
</ui:define> 

最後,特定的選項卡的內容:

<h:outputText value="TESTING 1" /> 
<h:panelGroup styleClass="formField"> 
    <h:outputText value="Enter Value:" /> 
    <h:inputText value="#{general.name}" /> 
</h:panelGroup> 

UPDATE 只注意到,即使我不不隱藏標籤並按下按鈕,數值將被重置。調查...

+0

你可以用隱藏/顯示事件顯示你的xhtml的標籤部分嗎? – 2011-05-15 15:28:31

+0

@Dave - 添加的代碼。 TNX。 – Ben 2011-05-15 15:39:49

回答

1

值將只如果使用視圖作用域的bean和(或前右)標籤導航過程中所需的表單提交到服務器端保留。

作爲替代方案,你可以同時呈現所有的標籤,並且只使用JS/CSS來顯示/隱藏選項卡的內容。 CSS隱藏的輸入仍然會提交給服務器端。

+0

Tnx。隱藏在CSS中意味着用'display:none'分配一個類嗎? – Ben 2011-05-15 15:54:55

+0

是的。然後只用JS切換。 – BalusC 2011-05-16 00:12:11

+0

在註釋的線''不僅JS的? (因爲這不起作用) – Ben 2011-05-16 06:22:42

相關問題