请求不会在primefaces数据表中呈现响应

时间:2012-12-01 15:26:43

标签: jsf primefaces

我有一个带有搜索字段和commandLink的数据表进行排序。我用来触发排序的commandLink不在列标题中,而是在datatable的标题上。当我加载我的页面并只使用commandLink排序一切正常。表按两个顺序排序,我在页面上看到结果。当我在globalFilter中搜索某些内容时出现问题。它也有效,但在那之后我无法排序我的桌子。我清除了globalFilter的inputText,我无法对表进行排序。总而言之,我只在不使用搜索字段时才看到排序结果。排序操作有效,但请求不更新数据表。我把我的代码放在下面。也许有人知道如何解决它。

<ui:composition>
    <p:panel header="Moje pomiary" footer="#{msgs.footer}" id="myMeasurement">

        <h:form id="form" prependId="false">
<p:dataTable var="m" value="#{myMeasurementTable.measurement}" id="measureList" editable="true"              
             widgetVar="mTable"   
             emptyMessage="No files found with given criteria" filteredValue="#{myMeasurementTable.filteredMeasurement}" >

<f:facet name="header">  
        Sortowanie według: <p:commandLink id="sortByName" actionListener="#{myMeasurementTable.sortByName}" update="measureList">   
    <h:outputText value="nazwa pliku" />  
</p:commandLink>  
        |<h:commandLink action="#{myMeasurementTable.sortByArchivisationDate}"> data archiwizacji </h:commandLink> 
        |<h:commandLink action="#{myMeasurementTable.sortByMeasureDate}"> data badania </h:commandLink> 
        <p:outputPanel styleClass="searchPanel">  
            <h:outputText value="Szukaj: " />  
            <p:inputText styleClass="globalFilter" id="globalFilter" onkeyup="mTable.filter()" style="width:150px" />  
        </p:outputPanel>  
    </f:facet>  

    <p:column headerText="Informacje pomiarowe" style="width:125px" filterStyle="display:none" filterBy="#{m.fileName} #{m.measureDate} #{m.place} #{m.archivisationDate}"
    filterMatchMode="contains" >
    <p:separator styleClass="separatorColumn"/> 
        Nazwa pliku: <h:outputText value="#{m.fileName}" /><br /> 
                Data badania: <h:outputText value="#{m.measureDate}" /><br /> 
                Data archiwzacji: <h:outputText value="#{m.archivisationDate}" /><br /> 
                Miejscowość: <h:outputText value="#{m.place}"/> <br />
                Współrzędne GPS:           
    </p:column>

    <p:column headerText="Wykresy">  
       <img src="/tmp/21/myfile.xls/myfile.xls_Parametr x.png" width="150"/>  
    </p:column> </p:dataTable></h:form></p:panel></ui:composition>

和我的bean的一部分

@ManagedBean(name = "myMeasurementTable")
@ViewScoped
public class myMeasurementTable implements Serializable{


    private static final long serialVersionUID = -9193902657201234669L;
    private List<Measurement> measurement;
    private List<Measurement> filteredMeasurement;
    private boolean sortAscending = true;

    public myMeasurementTable() {
        measurement = new ArrayList<Measurement>();
        fillTable(measurement);
    }

    public String sortByName() {
        System.out.println("naciskam sortowanie");
        if (sortAscending) {
            Collections.sort(measurement, new Comparator<Measurement>() {

                @Override
                public int compare(Measurement m1, Measurement m2) {

                    return m1.getFileName().compareTo(m2.getFileName());

                }
            });
            sortAscending = false;
        } else {
            Collections.sort(measurement, new Comparator<Measurement>() {

                @Override
                public int compare(Measurement m1, Measurement m2) {
                    System.out.println(m2.getFileName());
                    return m2.getFileName().compareTo(m1.getFileName());

                }
            });
            sortAscending = true;
        }
        return null;
    }

1 个答案:

答案 0 :(得分:1)

好的,我在primefaces论坛找到了解决方案。很简单。我只添加了oncomplete =&#34; mTab​​le.filter()&#34;命令按钮,一切正常。