我想在 ap:dataTable 上实现自定义过滤。在 dataTable 的标题中,我有 ap:inputText 我想通过 ajax 过滤表。我遇到的问题是 bean 方法没有被 p:ajax 标记调用。这是有问题的代码片段:
<h:form id="form1">
<p:dataTable id="selectTable" var="select"
selectionMode="multiple" rowKey="#{select.id}"
value="#{pc_Selectcourses.allCourses}">
<f:facet name="header">
<p:outputPanel>
Search For Courses Completed:
<p:inputText id="filterEntry" value="#{pc_Selectcourses.query}">
<p:ajax event="keyup" update=":form1:selectTable"
listener="#{pc_Selectcourses.filterListener}" />
</p:inputText>
</p:outputPanel>
</f:facet>
<!-- table columns here, etc. -->
</p:dataTable>
</h:form>
和支持bean:
public void filterListener() {
System.out.println("Hello world, hope you're listening...");
}
当我输入 inputText 时,Sysout 永远不会被打印出来。我还注意到我的 ajax 通知程序/状态图标没有显示任何活动,所以我怀疑发生了什么。
编辑
我刚刚尝试将 p:ajax 从 Eclipse 的 Palette 拖放到我的 xhtml 代码中,它说要使用它,我需要将库导入我的工作区。我让它继续,它将 primefaces v3.2 jar 文件添加到 Web_INF/lib 中。p:ajax 仍然不起作用。
我很困惑为什么它要求这样做,因为所有 Primefaces 组件一直运行良好。项目设置可能有问题吗?