【问题标题】:p:selectCheckboxMenu 'Select all' ajax listener not invokedp:selectCheckboxMenu '全选' ajax 监听器未调用
【发布时间】:2014-06-12 22:30:28
【问题描述】:

我有一个 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(关于按下的复选框的列表)不会改变。 为什么?我该如何解决,“全选”按钮有效?

【问题讨论】:

    标签: ajax jsf primefaces


    【解决方案1】:

    在 Primefaces 4 和 5 中,“Toggle all”复选框有一个特殊的 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>
    

    【讨论】:

      【解决方案2】:

      这行得通。

      <p:ajax event="toggleSelect"  process="@this" partialSubmit="true" />
      

      【讨论】:

      • 欢迎来到 Stack Overflow!您能否添加一些详细信息来说明为什么这应该起作用?纯代码答案不是很有用,可能会被删除。
      • 确实有效。但仅适用于全选选项。对于其余选项,必须添加另一个事件“更改”。
      【解决方案3】:

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 2011-06-29
      • 2017-09-24
      • 2014-05-08
      相关资源
      最近更新 更多