2012-07-27 82 views
0

我有一個主要的面部應用程序。它有菜單和標籤。當我點擊菜單欄上的菜單項時,它將插入到管理bean列表中,並在xhtml page.and中打開選項卡。當我點擊選項卡上的關閉選項卡時,它將從列表中刪除選項卡的值並關閉該標籤。但是,當我在任何選項卡中包含頁面並且頁面具有inputText並且輸入文本required = true時,當我關閉頁面,並且當文本字段沒有數據時,選項卡數據無法從託管bean中的數組List中刪除。點擊關閉標籤該標籤不能刪除數組列表

的菜單欄和輸出選項卡

<h:form id="menu">     
     <p:menubar autoDisplay="true"> 
      <p:submenu id="student" label="Student">  
       <p:menuitem id="studentAdmission" value="Student Admission" action="#{ajaxBean.editAction}" ajax="true" update=":outputForm"> 
        <f:setPropertyActionListener target="#{ajaxBean.action}" value="StudentAdmission" /> 
       </p:menuitem> 
       <p:menuitem id="studentList" value="Student Profile" action="#{ajaxBean.editAction}" ajax="true" update=":outputForm"> 
        <f:setPropertyActionListener target="#{ajaxBean.action}" value="StudentProfile" /> 
       </p:menuitem>       
      </p:submenu> 
      <p:submenu id="registration" label="Registration"> 
       <p:menuitem id="registrationAdd" value="Subject Registration" action="#{ajaxBean.editAction}" ajax="true" update=":outputForm"> 
        <f:setPropertyActionListener target="#{ajaxBean.action}" value="SubjectRegistration"/>         
       </p:menuitem> 
       <p:menuitem id="registrationList" value="List of Registration" action="#{ajaxBean.editAction}" ajax="true" update=":outputForm"> 
        <f:setPropertyActionListener target="#{ajaxBean.action}" value="RegistrationList" /> 
       </p:menuitem>       
      </p:submenu> 
     </p:menubar> 
    </h:form>  
    <h:form id="outputForm"> 
     <p:tabView id="outputTab"> 
      <p:ajax event="tabClose" listener="#{ajaxBean.closeTab}"/> 
      <c:forEach items="#{ajaxBean.chcekItem}" var="item" varStatus="loop"> 
       <p:tab id="#{item}" title="#{item}" closable="true">        
        <ui:include src="#{bundle[item]}"/> 

       </p:tab> 
      </c:forEach> 
     </p:tabView> 
    </h:form> 

這裏任何一個可以幫助我。

+0

先顯示一些代碼... – 2012-07-27 06:29:14

回答

1

在這裏的問題,我使用

<p:ajax event="tabClose" listener="#{ajaxBean.closeTab}"/> 

用於關閉標籤

和解決方案,我發現是

<p:ajax event="tabClose" immediate="true" listener="#{ajaxBean.closeTab}"/> 

這意味着,如果我們要關閉標籤的任何方式,並希望發送tabCloseactionmanagedbean那麼我們必須使用immediate="true"