I'm using binding in datatable in the last version of prime faces ( PrimeFaces-2.1.RC1-SNAPSHOT ), and when I click many time on a corner of a header, a new line in this header is created.
Here is a video to show what I'm saying :
http://www.youtube.com/watch?v=S1RtQKHQ3k8
This code works well with the version 2.0.2 of prime faces
Here is the code used in my JSF
Code: Select all
<p:dataTable id="resGroupBy"
styleClass="gridColumns1"
paginator="true"
rows="50"
binding="#{searchController.dynamicDataTable}"
rendered="#{ (searchZone.groupByResults != null and searchZone.displayGroupByResult) }">
</p:dataTable>
Code: Select all
.....
dynamicDataTable.setValueExpression("value", createValueExpression("#{searchZone.dynamicList}", List.class));
dynamicDataTable.setVar("dynamicItem");
int colWidth = DATATABLE_WIDTH / dynamicHeaders.length;
/*Iterate over columns. */
for (int i = 0; i < sz.getDynamicList().get(0).size(); i++) {
/*Create <h:column>.*/
Column column = new Column();
dynamicDataTable.getChildren().add(column);
/*Create <h:outputText value="dynamicHeaders[i]"> for <f:facet name="header"> of column. */
HtmlOutputText header = new HtmlOutputText();
header.setValue(dynamicHeaders[i]);
column.setHeader(header);
//column.setValueExpression("sortBy", createValueExpression("#{dynamicItem[" + i + "]}",String.class ) ) ;
// column.setValueExpression("filterBy", createValueExpression("#{dynamicItem[" + i + "]}",String.class ) ) ;
column.setSortBy( createValueExpression("#{dynamicItem[" + i + "]}", String.class) );
/*Create <h:outputText value="#{dynamicItem[" + i + "]}"> for the body of column.*/
HtmlOutputText output = new HtmlOutputText();
output.setValueExpression("value", createValueExpression("#{dynamicItem[" + i + "]}", String.class));
column.getChildren().add(output);
column.setWidth(colWidth);
column.setResizable(true);
}
}
....
I don't know if you will be able to reproduce this bug but that's funny
JB