jsf - richfaces datatable sorting with rowclick event -
richfaces datatable returns wrong row rowclick event after sorting. example: test.xhtml
<rich:datatable id="testid" value="#{testbean.names}" var="name"> <a4j:ajax event="rowclick" listener="#{testbean.selectname(name)}" /> <rich:column id="name" sortby="#{name}" sortorder="#{testbean.nameorder}"> <f:facet name="header"> <a4j:commandlink value="name" execute="@this" render="testid" action="#{testbean.sortbyname}" /> </f:facet> <h:outputtext value="#{name}" /> </rich:column> </rich:datatable> testbean.java
public class testbean { private list<string> names; private sortorder nameorder = sortorder.unsorted; public testbean() { names = new arraylist<>(arrays.aslist("bbbb", "aaaa", "dddd", "cccc")); } public list<string> getnames() { homecoming names; } public void selectname(final string name){ system.out.println(name); } public void sortbyname() { if (nameorder.equals(sortorder.ascending)) { setnameorder(sortorder.descending); } else { setnameorder(sortorder.ascending); } } public sortorder getnameorder() { homecoming nameorder; } public void setnameorder(sortorder nameorder) { this.nameorder = nameorder; } } if run code above, see whenever click first row "aaaa", print console "bbbb". when check on firebug, notice row index doesn't match cell index.
<tr id="**page:testid:0**" class="rf-dt-r rf-dt-fst-r" onclick="richfaces.ajax(this,event,{"parameters":{"javax.faces.behavior.event":"rowclick","org.richfaces.ajax.component":"page:testid"} ,"sourceid":this} )"> <td id="**page:testid:1:name**" class="rf-dt-c">aaaa</td> </tr> is bug in richfaces? help prepare problem?
jsf datatable richfaces javabeans richdatatable
No comments:
Post a Comment