2012-04-04 6 views
1

Wie man Teil für Teil xhtml-Seite mit Primefaces und Ajax (oder ohne) rendern. Alles andere funktioniert, wenn der Benutzer das Kontrollkästchen drückt, wird eine Nachricht angezeigt, aber der Inhalt von Benutzername wird nie aktualisiert. Wie kann man panelgrid in diesem Fall aktualisieren? Ich bin total Neuling mit AJAX, begann heute :)Wie kann man einen Teil der Seite mit AJAX oder JSF aktualisieren?

<h:outputLabel value="Do you want to create username?" for="description" /> 
    <p:selectBooleanCheckbox value="#{testController.selectedNew.asUser}"> 
    <p:ajax update="msg" listener="#{testController.selectedNew.addMessage()}"/> 
    <p:ajax update="usernamecontent"/> ------> **This is not working!** 
    </p:selectBooleanCheckbox> 

    <h:panelGrid columns="2" id="usernamecontent" rendered="#{testController.selected.asUser}"> 
    <h:outputLabel value="#{bundle.CreateUserLabel_userUsername}" for="username" /> 
    <p:inputText id="username" value="#{testController.selectedNew.userUsername.username}" title="#{bundle.CreateUsersTitle_username}" required="true" requiredMessage="#{bundle.CreateUserRequiredMessage_username}"/> 

    <h:outputLabel value="#{bundle.CreateUsersLabel_password}" for="password" /> 
    <p:inputText id="password" value="#{testController.selectedNew.userUsername.password}" title="#{bundle.CreateUserTitle_password}" required="true" requiredMessage="#{bundle.CreateUserRequiredMessage_password}"/> 
    </h:panelGrid> 

Dank Sami

Antwort

1

Ihre usernamecontent Komponente selbst bedingt in der Server-Seite wiedergegeben ist. Um Komponenten aktualisieren zu können, müssen Sie sicherstellen, dass die fragliche Komponente immer gerendert wird, da es letztendlich das JavaScript ist, das es auf der Clientseite aktualisieren muss.

Sie müssen es in eine andere Komponente einfügen, die immer gerendert wird, so dass JavaScript immer darauf zugreifen kann, um den Inhalt zu aktualisieren.

<h:panelGroup id="usernamecontent"> 
    <h:panelGrid columns="2" rendered="#{testController.selected.asUser}"> 
     ... 
    </h:panelGrid> 
</h:panelGroup> 
+0

Das war es :) Vielen Dank, kiitos kiitos! BTW, haben Sie gute Links zu Tutorials oder Ideen von Büchern, was zu lesen, um Starthilfe zu JSF + Ajax zu bekommen? Haben Sie eine Idee zu diesem: http://stackoverflow.com/questions/10003274/jpa-manytomany-in-case-of-users-and-groups/10003452#10003452 – Sami

+0

Gern geschehen. Sie können [Kommunikation in JSF 2.0] (http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html) hilfreich finden. – BalusC

Verwandte Themen