Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Richfaces 3数据表排序不工作_Java_Jsf_Richfaces_Jsf 1.2 - Fatal编程技术网

Java Richfaces 3数据表排序不工作

Java Richfaces 3数据表排序不工作,java,jsf,richfaces,jsf-1.2,Java,Jsf,Richfaces,Jsf 1.2,我已经在谷歌上搜索了两天,并尝试了我在网上看到的各种尝试,但似乎没有任何效果 我试图让richfaces 3 datatable具有已排序的列,当我单击列标题时,实际上没有任何内容得到排序 有人知道我错过了什么吗?我需要在我的支持bean上实现一个属性吗 <rich:extendedDataTable id="resultsTable" value="#{tableBacking.results}" var="results" rowKeyVar="row"> <

我已经在谷歌上搜索了两天,并尝试了我在网上看到的各种尝试,但似乎没有任何效果

我试图让richfaces 3 datatable具有已排序的列,当我单击列标题时,实际上没有任何内容得到排序

有人知道我错过了什么吗?我需要在我的支持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>

桌背豆

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

}
公共类表查找备份{
私有列表结果=null;
private List columns=new ArrayList();
公开无效搜索(){
getData(“”);
}
私有void getData(字符串where子句){
试一试{
DataDao dd=新的DataDao();
结果=dd.getData(WebDataViewerConstants.SCHEMA_名称,selectedTable,where子句);
}捕获(例外e){
FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(“无法使用getData中的选定搜索条件检索数据”);
}
}
//列在另一个方法中设置,该方法由用户执行的其他操作触发
//接球手和接球手
}

我终于明白了。我所需要做的就是将
sortOrder=“#{tableBacking.sortOrder[columns]}”
添加到我的
rich:columns
标记中,然后在我的backer中添加以下内容:

private Map<String, Object> sortOrder = new HashMap<String, Object>();

// setter and getter
private-Map-sortOrder=new-HashMap();
//接二连三

我终于明白了。我所需要做的就是将
sortOrder=“#{tableBacking.sortOrder[columns]}”
添加到我的
rich:columns
标记中,然后在我的backer中添加以下内容:

private Map<String, Object> sortOrder = new HashMap<String, Object>();

// setter and getter
private-Map-sortOrder=new-HashMap();
//接二连三

您可能需要查看浏览器的Javascript控制台,以查找可能的Javascript错误,并确保JSF没有在网络级响应中静默返回转换或验证错误。浏览器控制台中没有js错误。您的支持bean的范围是什么?无法从头开始回答,因为我从来没有这样做过使用过它,但谷歌给了我和其他人在community.jboss.org上的线程。你有没有经历过?我已经尝试过所有这些链接好几次了。你可能需要查看浏览器的Javascript控制台以查找可能的Javascript错误,并确保JSF没有在网络级响应中静默返回转换或验证错误。浏览器控制台中没有js错误。问题是什么你们的支持bean的范围?无法从头顶回答,因为我从未使用过它,但谷歌给了我和其他人在community.jboss.org上的和线程。你经历过吗?我已经尝试过所有这些链接好几次了。