我已经在谷歌上搜索了两天,并尝试了我在网络上看到的各种尝试,但似乎没有任何效果对我有用。
我试图让 richfaces 3 数据表对列进行排序,当我单击列标题时,实际上没有任何内容被排序。
有人知道我错过了什么吗?我需要在我的支持 bean 上实现一个属性吗?
<rich:extendedDataTable id="resultsTable" value="#{tableBacking.results}" var="results" rowKeyVar="row">
<rich:column>
<f:facet name="header">
<h:outputText value="Row Number" />
</f:facet>
</rich:column>
<rich:columns value="#{tableBacking.columns == null ? '' : tableBacking.columns}"
var="columns" index="ind" id="column#{ind}"
sortBy="#{results[ind].data}" rendered="#{tableBacking.columns != null}">
<f:facet name="header">
<h:outputText value="#{columns.columnDescription}" />
</f:facet>
<h:outputText value="#{results[ind].data}" />
</rich:columns>
</rich:extendedDataTable>
TableLookupBacking bean
public class TableLookupBacking{
private List<List<TableData>> results = null;
private List<TableData> columns = new ArrayList<TableData>();
public void search() {
getData("");
}
private void getData(String whereClause) {
try {
DataDao dd = new DataDao();
results = dd.getData(WebDataViewerConstants.SCHEMA_NAME, selectedTable, whereClause);
} catch (Exception e) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Unable to retrieve data with selected search criteria in getData."));
}
}
// columns get set in another method that is triggered off something else the user does
// Getters and Setters
}
最佳答案
我终于明白了。我需要做的就是将 sortOrder="#{tableBacking.sortOrder[columns]}"
添加到我的 rich:columns
标记,然后在我的支持者中添加以下内容:
private Map<String, Object> sortOrder = new HashMap<String, Object>();
// setter and getter
关于java - Richfaces 3 数据表排序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14145635/