【发布时间】:2012-01-03 03:49:10
【问题描述】:
我有一个<p:dataTable> 和一个<p:column selectionMode="multiple" />。当我在 dataTable 中显示单行时,我希望我的应用程序自动检查该行(以及表格标题上显示的“checkAll”复选框)。
我已经通过 JavaScript 完成了这项工作,它在视觉上很有效。但是,在提交表单时,似乎未提交“已检查”值。如果我单击复选框两次(取消选中并再次选中它),它可以工作。
JSF:
<p:dataTable var="invoiceGroup"
selection="#{chargeBean.selectedInvoiceGroupBeans}"
value="#{chargeBean.invoiceGroupList}"
rowKey="#{invoiceGroup.id}">
<p:column selectionMode="multiple" />
...
</p:dataTable>
Javascript 代码:
function selectTableElements() {
var checkBoxes = $('#invoiceGroupTable td.ui-selection-column input[type="checkbox"]');
var paginatorPages = $('#invoiceGroupTable .ui-paginator .ui-paginator-pages .ui-paginator-page');
if (checkBoxes.length === 1 && paginatorPages.length === 1) {
setTimeout(function () {
$('#invoiceGroupTable th input[type="checkbox"]').click();
}, 10);
}
}
有没有办法在服务器端做这个?
【问题讨论】:
标签: checkbox primefaces datatable