繁体   English   中英

单击primefaces中的字段集后如何调用方法?

[英]How to call a method after clicking a fieldset in primefaces?

这是我的 .xhtml 文件中的代码,我在字段集下添加

索引.xhtml

    <p:fieldset legend="BPS Listener Method" toggleable="true" collapsed="#{bpsFrontBean.bpsListenerSwitch}" toggleSpeed="500" style="width: 920px;margin: 0 auto; text-align: left">
    <p:ajax listener="#{bpsFrontBean.onToggleBpsListenerSwitch}" update="parametersGrid"/>
    .........
    </p:fieldset>

如果我在显示页面之前运行上面的代码,则会出现错误提示:

    javax.faces.view.facelets.TagException: <p:ajax> Event attribute could not be determined: null

如果单击可切换字段集,我想触发一个方法。

Primefaces 用户指南 ( http://www.primefaces.org/showcase/ui/panel/fieldset.xhtml ) 的第 205-206 页说:

Ajax 行为事件

toggle是 fieldset 提供的默认且唯一的 ajax 行为事件,在内容被切换时进行处理。 如果您定义了一个侦听器,它将通过传递 org.primefaces.event.ToggleEvent 的实例来调用。

这是一个示例,该示例在切换字段集时添加了 facemessage 并更新了咆哮组件。

<p:growld id="messages" />
<p:fieldset legend="Toggleable Fieldset" toggleable="true">
    <p:ajax listener="#{bean.onToggle}" update="messages"/>
    //content
</p:fieldset>

在豆子上:

public void onToggle(ToggleEvent event) {
   Visibility visibility = event.getVisibility();
   FacesMessage msg = new FacesMessage();
   msg.setSummary("Fieldset " + event.getId() + " toggled");
   msg.setDetail("Visibility: " + visibility);
   FacesContext.getCurrentInstance().addMessage(null, msg);
}

您必须在p:ajax添加event="toggle"以消除错误:

<p:ajax event="toggle" listener="#{bpsFrontBean.onToggleBpsListenerSwitch}" update="parametersGrid"/>

不幸的是,目前(PF 8)没有在文档中提到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM