gpt4 book ai didi

ajax - p :selectCheckboxMenu 'Select all' ajax listener not invoked

转载 作者:行者123 更新时间:2023-12-02 23:31:51 25 4
gpt4 key购买 nike

我有一个 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,true,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 事件 - 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>

关于ajax - p :selectCheckboxMenu 'Select all' ajax listener not invoked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23323102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com