ajax - 如何通过选中/取消选中 selectBooleanCheckbox 来重新加载页面?

标签 ajax jsf-2 richfaces

如何通过选中/取消选中 selectBooleanCheckbox 来重新加载页面(并更新模型值)?

@Ellie:我都试过了 <a4j:ajax event="click" action="doiListView"/><f:ajax event="click" action="doiListView"/> ,但没有任何反应。 (一段)代码是这样的:

<td style="font-size: 5pt; border: 0; min-width:60px">
   <rich:calendar id="creationToDate" value="#{listModel.creationDate.rangeEnd}"
                  datePattern="yyyy-MM-dd" enableManualInput="true"
                  rendered="#{listModel.creationDate.range}"
                  valueChangeListener="#{listController.filterFieldChanged}">
   </rich:calendar>
</td>
<td rowspan="2">
   <h:selectBooleanCheckbox value="#{listModel.creationDate.range}">
      <a4j:ajax event="click" action="doiListView"/>
   </h:selectBooleanCheckbox>
</td>

如果复选框被选中,日期选择器应该可见。但是根据您上面的提示,没有任何反应...... 如果我在 selectBooleanCheckbox 标记中添加 onclick="window.location.href=window.location.href",那么它就可以工作,但正如我所说,我想尽可能使用 RF 组件......

最佳答案

你的问题不是很具体。但据我了解,您基本上想要提交整个表单并重新加载整个页面(为什么不只是表单?)。

在这种情况下,您需要设置 execute属性为 @form这样整个表单将被提交(即默认为 @this ,当前组件)并且您还需要设置 render属性为 @all这样整个 View 将被重新呈现(或者使用 @form 代替,如果只重新呈现表单就足够了)。

<h:selectBooleanCheckbox value="#{listModel.creationDate.range}">
    <f:ajax event="click" execute="@form" render="@all" />
</h:selectBooleanCheckbox>

event="click"顺便说一下,在上面的构造中是可选的。它已经是 <h:selectBooleanCheckbox> 的默认 ajax 事件.你可以把它放在一边:

<h:selectBooleanCheckbox value="#{listModel.creationDate.range}">
    <f:ajax execute="@form" render="@all" />
</h:selectBooleanCheckbox>

此外,您的 action属性无效。它不存在。如果你真的想在调用 Action 阶段调用一个方法,那么你需要 listener属性代替。

<h:selectBooleanCheckbox value="#{listModel.creationDate.range}">
    <f:ajax execute="@form" listener="#{listModel.rangeListener}" render="@all" />
</h:selectBooleanCheckbox>

public void rangeListener() {
    // ...
}

或者,可选地,如果您需要能够 broadcast events :

public void rangeListener(AjaxBehaviorEvent event) {
    // ...
}

语法与 <a4j:ajax> 相同.唯一的区别是它解决了 executerender有点不同,支持更方便的属性。

另见:

关于ajax - 如何通过选中/取消选中 selectBooleanCheckbox 来重新加载页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8324962/

相关文章:

php - 为什么浏览器不解析AJAX加载的文件中的JS代码?

java - 添加/删除项目时的 Richfaces pickList ajax 事件

javascript - 如何将 html 表格以多选项卡格式导出到 Excel?

php - Ajax POST 请求返回 int 而不是字符串

jsf - JSF 是否支持 MVVM 设计模式?

java - 使用 Oracle 数据库数据的 Primefaces 饼图

java - Primefaces 数据表 : what 'onRowSelectUpdate="display"' means?

jboss - 如何在调用a4j链接后重新呈现RichFaces组件

java - 如何仅在未渲染另一个组件时才渲染一个组件?

PHP Laravel 同时执行多个 ajax 请求会出现 'encryption key' 服务器错误