1
我正在使用Primefaces創建可篩選表。數據表篩選器不工作
<p:dataTable id="tasksTable" value="#{taskView.currentTasks}" var="task" rowIndexVar="index" filteredValue="#{taskView.filteredTasks}">
<p:column headerText="Name">
<h:outputText value="#{task.name}"></h:outputText>
</p:column>
<p:column headerText="Type" filterBy="type"
filterMatchMode="containing">
<h:outputText value="#{task.type}"></h:outputText>
</p:column>
<p:column headerText="Date Started">
<h:outputText value="#{task.startTime}"></h:outputText>
</p:column>
<p:column headerText="Details">
<h:outputText value="#{task.details}"></h:outputText>
</p:column>
</p:dataTable>
這是我的看法:
@Component("taskView")
@Scope("session")
public class TaskView{
private List<TaskDTO> currentTasks;
private List<TaskDTO> filteredTasks;
//getters and setters
}
的問題是,過濾不工作。顯然,它使一個沒有收到答案的ajax調用只是一直在等待。在後端,currentTasks列表的getter被多次調用。
在我看來,Primefaces進行ajax調用,出於某種原因在服務器端它調用表結果的getter很多次(也許希望得到一些不同的結果?)。我不知道爲什麼會發生。
我在這裏做什麼錯了?
除非它是一個錯字,我不認爲'contains'是一個有效的'filterMatchMode'。你應該有'包含' – kolossus
@kolossus雖然你是對的,但是謝謝你,我也嘗試過'exact'或者將它作爲默認值,並且我得到了同樣的結果。還有其他問題嗎? – Dragos