加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

p:selectCheckboxMenu’选择所有’未调用的ajax侦听器

发布时间:2020-12-16 01:35:45 所属栏目:百科 来源:网络整理
导读:我有一个JSF:Primefaces SelectCheckBoxMenu p:selectCheckboxMenu value="#{domain.listaa}" label="Chooese!" style="height:25px" showCheckbox="true" p:ajax update="records" listener="#{domain.muti}" / f:selectItems value="#{domain.recLabels}"
我有一个JSF:Primefaces SelectCheckBoxMenu
<p:selectCheckboxMenu value="#{domain.listaa}" label="Chooese!" style="height:25px" showCheckbox="true">
    <p:ajax update="records" listener="#{domain.muti}" />  
    <f:selectItems value="#{domain.recLabels}"/>
</p:selectCheckboxMenu>

在托管bean中:

private boolean[] recFlags = new boolean[]{true,true,true};
private String[] recLabels = new String[]{"A","AAAA","MX","NS","SOA","CNAME","TXT"};
private List<String> listaa = new ArrayList<>();

public void muti(AjaxBehaviorEvent event){
    Arrays.fill(recFlags,false);
    for(int i=0;i<recLabels.length;i++){
        if(listaa.contains(recLabels[i])){
            recFlags[i]=true;
        }
    }
    System.out.println(listaa.toString());
}

所以在SelectCheckBoxMenu我按任意按钮,ajax调用正在运行,muti()函数将运行.没有问题.
但是,如果我按下SelectCheckboxMenu中的“全选”(最上面)按钮,则ajax调用不起作用,muti()函数将无法运行,listaa(按下复选框的列表)不会改变.
为什么?我如何解决,“全选”按钮有效?

在Primefaces 4和5中,有一个特殊的ajax事件,用于’Toggle all’复选框 – toggleSelect.

只需添加与默认ajax事件相同的属性即可.

<p:selectCheckboxMenu value="#{domain.listaa}" label="Chooese!" style="height:25px" showCheckbox="true">
    <p:ajax update="records" listener="#{domain.muti}" />  
    <p:ajax event="toggleSelect" update="records" listener="#{domain.muti}" />
    <f:selectItems value="#{domain.recLabels}"/>
</p:selectCheckboxMenu>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读