我尝试从实际选定的列中获取rowindex,并使用以下选项取消选择:
public void rowSelect(SelectEvent event) {
MyDataView selected = (MyDataView) event.getObject();
if (!selectedData.remove(selected)) {
selectedData.add(selected);
} else {
RequestContext.getCurrentInstance().execute("PF('datatTable').unselectRow(rowindex);");
}
}
}
我知道使用UnselectEvent取消选择一行很容易,然后按" crtl"但我的客户想要一键取消选择一行。
<p:dataTable widgetVar="datatTable" id="idDataTable" value="#{bean.dataview}" var="data" scrollable="true" scrollHeight="150"
rowSelectMode="add" selectionMode="multiple"
selection="#{sendGroupSmsSimple.selectedReceivers}" rowKey="#{bean.id}" filteredValue="#{data.filterData}" rowIndexVar="dataRowIndex">
<p:column id="recColumn" headerText="Name" filterBy="#{bean.fullname}" filterFunction="#{data.filterData}">
<h:outputText value="#{bean.fullname}"/>
</p:column>
<p:ajax event="rowSelect" listener="#{sendGroupSmsSimple.rowSelect}" process="@this" update="mainForm:updatePanel"/>
</p:dataTable>
我不想更新整个表单,因为我想要滚动条的实际状态。 我的实际Primefaces版本是6.0。 我的Bean的范围是GroupedConversationScoped。 感谢