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>