2013-04-18 4 views
-3

J'utilise p: composant tabMenu. J'ai 4 menuitems, chacun redirige vers une page différente de jsf mais le problème est que la page est retournée sans changer l'index actif et activeindex reste même avec la valeur initiale qui est 0.Je suis coincé sur p: Aide tabmenu s'il vous plaît

ce code est sur une page modèle pour toutes les pages

<h:form> 
    <p:tabMenu activeIndex="0"> 
     <p:menuitem value="Home" url="Menu.jsf" icon="ui-icon-star" /> 
     <p:menuitem value="Fabricants" url="/pagess/pagesFabricant/Fabricant.jsf" icon="ui-icon-wrench" /> 
     <p:menuitem value="Composants" url="/pagess/pagesComposant/Composant.jsf" icon="ui-icon-search" /> 
     <p:menuitem value="Dossier d'equivalence" url="DEQ.jsf" icon="ui-icon-document" /> 
    </p:tabMenu> 
    </h:form> 

Comment puis-je résoudre ce problème sachant que devrait changer automatiquement?

I Le bac un bean géré il ne fonctionne

public class LoginBean { 
    private int activeindex=0; 
public int getActiveindex() { 
     return activeindex; 
    } 

    public void setActiveindex(int activeindex) { 
     this.activeindex = activeindex; 
    } 

    public void Dirige(int a){ 

     activeindex=a; 
    }}.. 



<p:tabMenu activeIndex="#{loginBean.activeindex}" > 
     <p:menuitem value="Home" url="Menu.jsf" icon="ui-icon-star" action="#{loginBean.Dirige(0)}"/> 
     <p:menuitem value="Fabricants" url="/pagess/pagesFabricant/Fabricant.jsf" icon="ui-icon-wrench" action="#{loginBean.Dirige(1)}"/> 
    </p:menuitem> 

aussi ne fonctionne pas

J'essaie d'ajouter update = "@ all" pour everu menuitem .it est le même :(


-je oublié de vous dire .THIS composant est à la page page du modèle de ..all utilisant ce modèle !!! le problème lorsque la page est chargée sur le braowser-il la propriété du modèle, sur le modèle du code est

<h:form> 
    <p:tabMenu activeIndex="0"> 
     <p:menuitem value="Home" url="Menu.jsf" icon="ui-icon-star" /> 
     <p:menuitem value="Fabricants" url="/pagess/pagesFabricant/Fabricant.jsf" icon="ui-icon-wrench" /> 
     <p:menuitem value="Composants" url="/pagess/pagesComposant/Composant.jsf" icon="ui-icon-search" /> 
     <p:menuitem value="Dossier d'equivalence" url="DEQ.jsf" icon="ui-icon-document" /> 
    </p:tabMenu> 
    </h:form> 

Il montre l'index actif sur 0, pour cette chose que je toute la page redirigée pas synchronisent

Répondre

0

Je pense qu'il est seulement possible de mettre à jour l'arborescence des composants à l'intérieur de la méthode d'action.

Vous pouvez modifier les composants de manière dynamique à l'intérieur des méthodes d'action et définir également l'index actif.

Voici le composant tabMenu api pour d'autres références.

http://www.primefaces.org/docs/api/3.5/org/primefaces/component/tabmenu/TabMenu.html

public void getFooClientId(int activeIndex) { 
    FacesContext context = FacesContext.getCurrentInstance(); 
    UIViewRoot root = context.getViewRoot(); 

    final String componentId = "foo"; 
    UIComponent c = findComponent(root, componentId); 
    TabMenu t = (TabMenu)c; 
    t.setActiveIndex(activeIndex); 


    } 

    /** 
    * Finds component with the given id 
    */ 
    private UIComponent findComponent(UIComponent c, String id) { 
    if (id.equals(c.getId())) { 
     return c; 
    } 
    Iterator<UIComponent> kids = c.getFacetsAndChildren(); 
    while (kids.hasNext()) { 
     UIComponent found = findComponent(kids.next(), id); 
     if (found != null) { 
     return found; 
     } 
    } 
    return null; 
    } 
Questions connexes