Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf p:ajax rowSelectCheckbox事件在列标题复选框中不起作用_Jsf_Primefaces - Fatal编程技术网

Jsf p:ajax rowSelectCheckbox事件在列标题复选框中不起作用

Jsf p:ajax rowSelectCheckbox事件在列标题复选框中不起作用,jsf,primefaces,Jsf,Primefaces,当我选中数据表中的复选框时,它工作正常,但当我选中列标题复选框时,复选框只会被选中,但值设置在后面。我们需要分别绑定列标题复选框的值 <div class="ContentSection"> <p:tab title="Result" id="dataTable_selectionDemoTab"> <h2>Table RowSelection with Checkbox</h2> &

当我选中数据表中的复选框时,它工作正常,但当我选中列标题复选框时,复选框只会被选中,但值设置在后面。我们需要分别绑定列标题复选框的值

<div class="ContentSection">
    <p:tab title="Result" 
           id="dataTable_selectionDemoTab">
        <h2>Table RowSelection with Checkbox</h2>
        <p:panel id="checkboxSelectTableContent_xhtml" >
            <div class="TableSection">
                <p:dataTable value="#{dataTableBean.defaultRecord}" 
                             var="car"
                             id="carDemo33" 
                             style="margin-bottom:0"
                             selection="#{dataTableBean.selectedRecords}"
                             rowKey="#{car.productNmr}">
                    <p:ajax event="rowSelectCheckbox" 
                            process="carDemo33" 
                            update="carDemo33,:tableform:multiCarDetail"
                            oncomplete="multiCarDialog.show();" >
                    </p:ajax>
                    <p:ajax event="rowUnselectCheckbox" 
                            oncomplete="multiCarDialog.show();" 
                            update="carDemo33,:tableform:multiCarDetail" >
                    </p:ajax>
                    <p:column selectionMode="multiple" 
                              style="width:16px;text-align:center"/>

                    <p:column headerText="productNmr" width="172">
                        <h:outputText value="#{car.productNmr}" />
                    </p:column>
                    <p:column headerText="productName" width="161">
                        <h:outputText value="#{car.productName}" />
                    </p:column>
                    <p:column headerText="address" width="161">
                        <h:outputText value="#{car.address}" />
                    </p:column>
                    <p:column headerText="leziDate" width="135">
                        <h:outputText value="#{car.leziDate}" />
                    </p:column>

                </p:dataTable>
            </div>
        </p:panel>
    </p:tab>
    </p:tabView>
</div>
<p:dialog id="tablePopup"  
          header="Selected Cars" 
          widgetVar="multiCarDialog" 
          modal="true" 
          showEffect="fade" 
          hideEffect="fade" 
          resizable="false" 
          width="200">
    <p:outputPanel id="multiCarDetail" 
                   style="text-align:center;">
        <ui:repeat value="#{dataTableBean.selectedRecords}" 
                   var="car">
            <h:outputText value="#{car.productNmr} - #{car.address}" 
                          style="display:block"/>
        </ui:repeat>
    </p:outputPanel>
</p:dialog>

使用复选框选择表行

您使用的Primefaces版本是什么?如果使用Primefaces 5.0或更高版本,则必须将
oncomplete=“multicardilog.show();”
更改为
oncomplete=“PF('multicardilog').show();“

这是我的示例代码

XHTML


复选框
ManagedBean

@ManagedBean(name="dtSelectionView")
@ViewScoped
public class SelectionView implements Serializable {

    private List<Car> cars6;
    private List<Car> selectedCars;

    @ManagedProperty("#{carService}")
    private CarService service;

    @PostConstruct
    public void init() {
        cars6 = service.createCars(10);
    }

    public List<Car> getCars6() {
        return cars6;
    }

    public void setService(CarService service) {
        this.service = service;
    }

    public List<Car> getSelectedCars() {
        return selectedCars;
    }

    public void setSelectedCars(List<Car> selectedCars) {
        this.selectedCars = selectedCars;
    }
}
@ManagedBean(name=“dtSelectionView”)
@视域
公共类SelectionView实现可序列化{
私人名单6;
私家车名单;
@ManagedProperty(“#{carService}”)
私家车服务;
@施工后
公共void init(){
cars6=服务。创建CARS(10);
}
公共列表getCars6(){
还车6;
}
公共无效设置服务(CarService服务){
服务=服务;
}
公共列表getSelectedCars(){
返回所选车辆;
}
公共车辆无效设置选定车辆(列出选定车辆){
this.selectedCars=selectedCars;
}
}

若在标题中切换了句柄复选框,则必须具有p:ajax event=“toggleSelect”

<p:ajax event="toggleSelect" 
        oncomplete="PF('multiCarDialog').show()" 
        update="checkboxDT,:formc:multiCarDetail" >
</p:ajax>


您的意思是“复选框已选中,但选择中的值=“#{dataTableBean.selectedRecords}未设置”对吗?如果使用selectionMode=“multiple”,则无法获取附加的示例代码,p:dataTable将自动生成复选框。很抱歉,我没有获取复选框。我已在该数据表中自定义数据表复选框出现,但当我选中列标题复选框时,值未绑定Hanks wittakarn现在值已绑定,复选框也已选中,但单击后列标题复选框,勾号在列标题复选框中不可见其他复选框如何?我指的是不是标题复选框的其他复选框。是否出现?是,复选框显示并选中,但只有列标题复选框在单击该复选框后未被选中行SelectCheckBox事件调用侦听器,在这方面,我也面临着同样的问题,当我选择body复选框时,侦听器正在调用,但当我选择column header复选框时,侦听器没有调用。你能帮我吗。
<p:ajax event="toggleSelect" 
        oncomplete="PF('multiCarDialog').show()" 
        update="checkboxDT,:formc:multiCarDetail" >
</p:ajax>