2016-04-07 7 views
0

ich Daten in einer JSF-Datentabelle anzuzeigen:Zuhörer Bean nicht aufgerufen werden, wenn Datentabelle sortiert

<p:dataTable value="#{mailServices.mailServices}" var="s"> 
    <p:column headerText="ID" sortBy="#{s.ID}"> 
     #{s.ID} 
    </p:column> 
    <p:column headerText="Name" sortBy="#{s.name}"> 
     #{s.name} 
    </p:column> 
    <p:column headerText="Aktiv" sortBy="#{s.startup}"> 
     <p:selectBooleanCheckbox value="#{s.startup}" > 
      <f:ajax event="change" listener="#{mailServices.toggleMailService}"/> 
      <f:attribute name="serviceid" value="#{s.ID}"/> 
     </p:selectBooleanCheckbox> 
    </p:column> 
</p:dataTable> 

Solange ich auf die Spaltenüberschriften klicken Sie nicht den Hörer aufgerufen wird, wenn eine Checkbox . Aber sobald ich eine Spalte sortiert habe (egal welche Spalte es ist), wird der Listener nicht aufgerufen.

Meine Zuhörer wie folgt aussehen:

public void toggleMailService(AjaxBehaviorEvent e) { 
    //code 
} 

Könnte es sein, dass ich die <f:ajax event...> falsch verwenden?

Vielen Dank im Voraus!

Antwort

-1

Was @BalusC sagte: Tag wird eine linke Klammer fehlt:

<f:ajax event="change" listener="#MailServices.toggleMailService}"/> 

Versuchen mit

<f:ajax event="change" listener="#{MailServices.toggleMailService}"/> 

Auch asure, dass Ihr Bean als "MailServices" erklärt wird

@ManagedBean(name="MailServices") 
+1

Hallo Laiv, ich habe den Post bearbeitet. Das war einfach ein Tippfehler. In realem Code fehlt die linke Klammer nicht. Außerdem habe ich die "MailServices" im Code so bearbeitet, dass sie nun auch in Kleinbuchstaben geschrieben sind (was auch ein Tippfehler war). Vielen Dank. – Caz