我在datable上使用过滤器并使用了所有filterMatchMode。当我过滤用户或在找到记录时输入数据复选框保留在列表中之前,但没有找到记录,然后复选框变为未选中。代码如下:
<p:dataTable widgetVar="usersTable" id="recieverUserList"
reflow="true" scrollable="true" scrollHeight="430"
value="#{UserReciepentController.recieverVo.reciepentList}"
var="user" styleClass="ptable" rowIndexVar="rowIndex">
<p:column headerText="Name" style="width:40%;"
filterBy="#{user.recieverName}" filterMatchMode="contains">
<div>
<h:outputText value="#{user.recieverName}" />
</div>
</p:column>
<p:column headerText="Email" style="width:50%;"
filterBy="#{user.recieverEmail}" filterMatchMode="contains">
<div>
<h:outputText value="#{user.recieverEmail}" />
</div>
</p:column>
<p:column headerText="Designation" style="width:40%;"
filterBy="#{user.recieverDesignation}" filterMatchMode="contains">
<div>
<h:outputText value="#{user.recieverDesignation}" />
</div>
</p:column>
<p:column headerText="Location" style="width:20%;"
filterBy="#{user.location}" filterMatchMode="contains">
<div>
<h:outputText value="#{user.location}" />
</div>
</p:column>
<p:column headerText="Department" style="width:20%;"
filterBy="#{user.recieverListName}" filterMatchMode="contains">
<div>
<h:outputText value="#{user.recieverListName}" />
</div>
</p:column>
<p:column style="width:40%;">
<div>
<p:selectBooleanCheckbox value="#{user.userSelected}" />
</div>
</p:column>
</p:dataTable>