2014-01-08 2 views
0

3 개의 탭이있는 아코디언 패널을 사용하고 있습니다.Primefaces AccordionPanel tabChange/tabClose의 내부 요소 유효성 확인

각 탭이 필요했다 필드와 accordionPanel에 대한 <p:ajax> 태그 : 모든 탭이 닫혀 기본적으로

<p:ajax event="tabChange" update=":contentForm:growl"/> 
<p:ajax event="tabClose" update=":contentForm:growl"/> 

. 클릭하여 탭을 열면 모든 탭의 모든 입력에 대한 유료화가 수행됩니다.

열기/닫기 탭에서 필드 유효성 검사를 건너 뛰고 아약스 쿼리를 수행하려면 어떻게합니까? 나는이 문제를 해결 한

답변

0

:

은 (activeIndex="#{tabBean.activeTabs}" 나는 콩에 열 탭 인덱스를 저장하는 아약스의 질의를 필요로한다). 내가 만든 보호기 수준 :

import javax.faces.event.AjaxBehaviorEvent; 
import org.primefaces.component.accordionpanel.AccordionPanel; 

public class ActiveIndexSaver { 
    private String activeTabs = "-1,0"; 

    public String getActiveTabs() { 
     return activeTabs; 
    } 

    public void setActiveTabs(String activeTabs) { 
     this.activeTabs = activeTabs; 
    } 

    public void saveIndexes(AjaxBehaviorEvent abe){ 
     AccordionPanel accordion = (AccordionPanel)abe.getComponent(); 
     activeTabs = accordion.getActiveIndex(); 
    } 
} 
내가 그를 위해 페이지 콩 및 게터에 위의 콩의를 주입을 쓴 후

:

@Inject 
private ActiveIndexSaver activeIndexSaver; 
.... 
public ActiveIndexSaver getActiveIndexSaver() { 
    return activeIndexSaver; 
} 

을 그리고 마지막으로, HTML :

<p:accordionPanel ... activeIndex="#{tabBean.activeIndexSaver.activeTabs}"> 
    <p:ajax event="tabChange" immediate="true" listener="#{tabBean.activeIndexSaver.saveIndexes}"/> 
    <p:ajax event="tabClose" immediate="true" listener="#{tabBean.activeIndexSaver.saveIndexes}"/> 
    ......