微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何通过选中/取消选中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以便整个视图将被重新渲染(或者如果仅重新渲染表单就足够使用@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>

此外,您的操作属性无效.它不存在.如果您确实想在调用操作阶段调用方法,则需要使用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>的语法相同.唯一的区别是它解决了执行和渲染方式的不同,并支持更方便的属性.

也可以看看:

> <f:ajax> VDL documentation
> <a4j:ajax> VDL documentation
> Is there any difference between f:ajax and a4j:ajax?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐