2016-10-04 5 views
0

Ich bin neu in der Hauptansicht und habe bereits Probleme mit der Komponente "selectOneMenu". Ich habe eine Datei mainMenu.xhtml implementiert, die auf allen meinen Seiten sichtbar ist. Dieses Hauptmenü hat eine "selectOneMenu" -Komponente für den Sprachwechsel. Das "selectOneMenu" öffnet sich nicht auf der Startseite und einigen anderen Seiten, aber es gibt auch Seiten, wo es geöffnet wird und wie es funktioniert. Ich habe jetzt ein paar Tage im Internet gesucht und konnte keinen Hinweis oder Vorschlag finden, der mein Problem gelöst hat. Wäre sehr nett hier etwas Hilfe zu finden.primefaces: selectonemenu öffnet nicht auf allen Seiten

Siehe Code unten: Identity_Session ist eine @ SessionScoped-Bean; Der "languageSet" ist eine HashMap von (String, Integer) Paaren.

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:p="http://primefaces.org/ui" 
     xmlns:f="http://xmlns.jcp.org/jsf/core"> 
    <h:head> 

    </h:head> 
    <h:body> 
     <h:form>  

      <p:panel>      
       <h:panelGrid columns="2" cellpadding="5" style="right: 700px; position: absolute; margin-top: -7px;" rendered="#{identity_Session.showMenuLogout()}"> 
        <p:outputLabel for="languageComboBox" value=" #{identity_Session.translate('outputlabel_language')}:" style="font-weight:bold"/> 
        <p:selectOneMenu id="languageComboBox" value="#{identity_Session.languageID}" style="width:150px"> 
         <p:ajax listener="#{identity_Session.translationAction()}" update="@all" delay="1000"/> 
         <f:selectItems value="#{identity_Session.getLanguageSet()}" /> 
        </p:selectOneMenu> 
       </h:panelGrid>       
      </p:panel> 

     </h:form> 
     <br/> 
     <br/> 
    </h:body> 
</html> 

UPDATE !!! Ich verwende das gleiche selectOneMenu mit den gleichen Werten (wie oben beschrieben) auf der gleichen Web-Seite. Wenn ich die selectOneMenu in die "west" -layoutUnit platziere, öffnet sie sich nicht, aber wenn ich sie in die "east" -layoutUnit platziere, öffnet sie sich. Ist das eigentlich ein "PrimeFaces" -Bug, oder fehlt mir etwas?

+0

was ist, wenn Sie die Optionen Facette entfernen zu ändern? – Kukeltje

+0

Leider funktioniert es nicht. Ich erhalte die folgende Fehlermeldung: javax.faces.component.html.HtmlPanelGrid kann nicht in org.primefaces.model.menu.MenuElement umgewandelt werden. Ich denke der Grund ist, dass eine "menuBar" -Komponente aus "menuItems", "subMenus" und "Facetten" besteht. Ich denke, Sie können nicht einfach ein "Panel", "panelGrid" oder andere Komponententypen zu einer "Menüleiste" – shaolinmonkabbot

+0

@all wird nicht empfohlen zu verwenden, versuchen, die ganze Seite ohne Ajax – Nikola

Antwort

0

Versuchen

</f:panel> 

zu

</p:panel> 
+0

Hat nicht geholfen .... – shaolinmonkabbot

+0

Das nächste Mal versuchen, einen Text als ** warum ** Sie denken, dass dies hilft. Und wenn Sie nicht sicher sind, fügen Sie einen Kommentar hinzu. – Kukeltje

Verwandte Themen