【发布时间】:2023-04-08 20:01:01
【问题描述】:
当我选中“选中所有框”复选框时,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>();
}
}
}
如果我一个一个地选中复选框,它会起作用,但是当我选中“选中所有复选框”时,它不会更新销售额。如果您需要,我可以分享更多详细信息。
【问题讨论】:
-
您没有提供显式事件,因此它回退到默认事件。您是否检查了文档以查看“检查全部”是否存在另一个(非默认)事件?
标签: ajax jsf primefaces