簡體   English   中英

選中“全部檢查”復選框不會調用p:ajax標簽JSF

[英]Checking 'check all' checkbox doesn't call p:ajax tag JSF

當我選中“選中所有復選框”復選框時,ajax無法正常工作。

 <p:selectCheckboxMenu id="departmantCheckBox" value="#{marketAnalysisReportController.selectedDepartmants}"  filter="true" filterMatchMode="startsWith" panelStyle="width:250px">
            <p:ajax update="saleCheckBox" listener="#{marketAnalysisReportController.updateSales}"/>
            <f:selectItems value="#{marketAnalysisReportController.departmants}" var="departmant"
                            itemValue="#{departmant}"
                            itemLabel="#{departmant.name}"/>
        </p:selectCheckboxMenu>

這是更新方法

public void updateSales(){
        sales=new ArrayList<Obje>();
        System.out.println("updatesales");
        for(Obje departmant: selectedDepartmants){
            System.out.println(departmant.name);
            if(departmant.getName().equals("test1")){
                sales.add(new Obje(20,"salestest20"));
                sales.add(new Obje(21,"salestest21"));
                System.out.println("add");
            }
            if(departmant.getName().equals("test2")){
                sales.add(new Obje(200,"salestest200"));
                sales.add(new Obje(210,"salestest210"));
            }
            if(departmant.getName().equals("test3")){
                sales.add(new Obje(250,"salestest250"));
                sales.add(new Obje(260,"salestest260"));
            }
            if(departmant==null || departmant.equals("")){
                sales=new ArrayList<Obje>();
            }
        }
    }

如果我一個接一個地選中復選框,則可以使用,但是當我選中“選中所有復選框”時,則不會更新銷售。 如果您需要,我可以分享更多細節。

正如Kukeltje早已指出的那樣,“全選”操作不會觸發您的代碼捕獲的默認ajax事件。 當您全選時觸發的ajax事件稱為“ toggleSelect”,因此您需要添加另一個ajax標簽,如下所示:

<p:ajax event =“ toggleSelect” ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM