Primefaces DataTable: selection not preserved after undo filtering -
im using:
- primefaces v. 5.0
- jsf v. 2.1.3-fcs
i have noticed strange behavior in datatable when filtering table selected row.
first, fulfil filter field 2 characters result rows not contain selected row. when delete 1 character filter field result rows contain selected row, selection no enabled. when delete second character, selection enabled again:
selected row before filtering:

filtering 2 characters, result rows not contain selected row: 
deleting 1 character filter result rows contain selected row: 
deleting character- selected row has selection enabled again: 
my xhtml:
<h:form> <p:datatable value="#{testtablebean.list}" filteredvalue="#{testtablebean.filteredlist}" selectionmode="single" selection="#{testtablebean.currentitem}" var="item" rowkey="#{item.id}"> <p:column headertext="id"> <h:outputtext value="#{item.id}" /> </p:column> <p:column headertext="name" filterby="#{item.name}" sortby="#{item.name}"> <h:outputtext value="#{item.name}" /> </p:column> <p:column headertext="value"> <h:outputtext value="#{item.value}" /> </p:column> </p:datatable> </h:form> and bean:
@managedbean @viewscoped public class testtablebean { private list<testtableitem> list; private list<testtableitem> filteredlist; private testtableitem currentitem; { list = new arraylist<testtableitem>(); (int = 0; < 5; ++i) { list.add(new testtableitem(i, "hello" + i, 10 + i)); } } public list<testtableitem> getfilteredlist() { return filteredlist; } public void setfilteredlist(list<testtableitem> filteredlist) { this.filteredlist = filteredlist; } public list<testtableitem> getlist() { return list; } public void setlist(list<testtableitem> list) { this.list = list; } public testtableitem getcurrentitem() { return currentitem; } public void setcurrentitem(testtableitem currentitem) { this.currentitem = currentitem; } } what have found out, in datatable selection attribute set based on list value attribute , value attribute set based on filteredvalue attribute- if not null. object selection attribute set before list filteredvalue attribute set, cause situation in selection set based on previous filter action, im not sure.
the question is, behavior normal or bug? , if bug, there workarounds?
Comments
Post a Comment