我在JSF数据表中显示数据:
<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>
只要我没有点击列标题,就会在单击复选框时调用侦听器。但是只要我对列进行排序(无论它是什么列),都不会调用侦听器。
我的听众看起来像:
public void toggleMailService(AjaxBehaviorEvent e) {
//code
}
可能是我错误地使用了<f:ajax event...>
吗?
提前致谢!
答案 0 :(得分:-1)
@BalusC说的是,标签缺少左括号:
<f:ajax event="change" listener="#MailServices.toggleMailService}"/>
尝试
<f:ajax event="change" listener="#{MailServices.toggleMailService}"/>
还要确保您的Bean被声明为&#34; MailServices&#34;
@ManagedBean(name="MailServices")