Richfaces 3数据表排序不起作用



我已经在谷歌上搜索了2天,并尝试了我在网上看到的各种尝试,但似乎没有任何东西适合我。

我试图得到一个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标签中,然后在我的backer中添加以下内容:

private Map<String, Object> sortOrder = new HashMap<String, Object>();
// setter and getter

相关内容

  • 没有找到相关文章

最新更新