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)