scrollableTable dynamic columns sorting broken
tw Apr 14, 2009 6:14 PMRF 3.3.0.GA
Sorting works for static columns, but not with dynamic columns created with rich:columns.
<rich:scrollableDataTable id="scrollableTestTable" value="#{EdtTestBean.rowIds}" var="rowId" selectionMode="multi" tableState="#{EdtTestBean.tableState}" selection="#{EdtTestBean.selection}" selectedClass="selected" rowClasses="tablerow1,tablerow2" columnsWidth="0*" width="100%" height="308px"> <rich:column id="static1" label="Status" sortable="true" sortExpression="status-#{rowId}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon" styleClass="center"> <f:facet name="header">FixedColumn1</f:facet> <h:outputText value="status-#{rowId}" /> </rich:column> <rich:column id="static2" label="Status" sortable="true" sortExpression="status-#{rowId}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon" styleClass="center"> <f:facet name="header">FixedColumn2</f:facet> <h:outputText value="status-#{rowId}" /> </rich:column> <rich:columns id="#{col.name}" value="#{tableColumns}" var="col" index="colIndex" label="#{col.description}" sortable="true" sortExpression="#{EdtTestBean.getRow(rowId)[colIndex].value}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon"> <f:facet name="header"> <h:outputText value="#{col.description}" /> </f:facet> <h:outputText value="#{EdtTestBean.getRow(rowId)[colIndex].value}" /> </rich:columns> </rich:scrollableDataTable>
Stacktrace when sorting on dynamic column:
java.lang.IllegalArgumentException: null
at javax.el.ListELResolver.coerce(ListELResolver.java:168)
at javax.el.ListELResolver.getValue(ListELResolver.java:51)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.jboss.el.parser.AstBracketSuffix.getValue(AstBracketSuffix.java:59)
at org.jboss.el.parser.AstValue.getValue(AstValue.java:67)
at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.richfaces.model.impl.expressive.ValueBindingExpression.evaluate(ValueBindingExpression.java:79)
at org.richfaces.model.impl.expressive.ObjectWrapperFactory.wrapObject(ObjectWrapperFactory.java:189)
at org.richfaces.model.ModifiableModel$RowKeyWrapperFactory.wrapObject(ModifiableModel.java:75)
at org.richfaces.model.impl.expressive.ObjectWrapperFactory$2.convert(ObjectWrapperFactory.java:177)
at org.richfaces.model.impl.expressive.ObjectWrapperFactory.convertList(ObjectWrapperFactory.java:138)
at org.richfaces.model.impl.expressive.ObjectWrapperFactory.wrapList(ObjectWrapperFactory.java:175)
at org.richfaces.model.ModifiableModel.sort(ModifiableModel.java:265)
at org.richfaces.model.ModifiableModel.modify(ModifiableModel.java:234)