【发布时间】:2012-06-20 19:31:54
【问题描述】:
我有一个页面,其中包含一个 PrimeFaces (2.2.1) 编辑器组件、一个刷新按钮和一个 selectOneMenu,其选择会影响编辑器的内容,如下所示:
<p:editor id="uploadedText" value="#{facilityDataUploadBean.uploadedText}"
width="600" height="180" disabled="true" controls="" />
<h:commandButton value="Refresh" immediate="true" />
<h:selectOneMenu id="skipLines" styleClass="dropdown"
value="#{facilityDataUploadBean.skipLines}">
<f:selectItems value="#{facilityDataUploadBean.skipLinesList}" />
<f:ajax listener="#{facilityDataUploadBean.importParameterChanged}" />
</h:selectOneMenu>
facilityDataUploadBean.importParameterChanged 更新 facilityDataUploadBean.uploadedText。更改 selectOneMenu 值后,操作员按下 Refresh 按钮刷新页面,包括 p:editor 的内容。 (我不能简单地使用 AJAX 刷新 p:editor,因为它不能正确重新渲染,至少在 PF 2.2.1 中是这样。)
似乎我应该能够在selectOneMenu 值更改时自动完成页面刷新,但我一直无法想出可以做到这一点的属性和事件的组合。我在selectOneMenu 上尝试了onchange="submit();"、immediate="true" 和valueChangeListener 的各种组合,以及f:ajax 事件上的execute="@all/@form"、render="@all/@form" 的各种组合,但都无济于事。我目前的解决方法是显示一条消息,要求用户在更改selectOneMenu 选择时按下刷新按钮 - 非常狡猾。
【问题讨论】:
标签: jsf-2 primefaces