嗨,在我的项目中,我有输入文本框,如下所示,在"keyup"事件中,我正在调用管理bean,我在数组列表中执行搜索操作。
我在p:dataTable中显示的数组列表名为userDataTable
My Code for xhtml
<p:inputText id="searchText" binding="#{searchText}"
value="#{userData.searchReq}" autocomplete="off">
<p:ajax listener="#{userManagement.userTable.searchListener}"
event="keyup" update="userDataTable/>
</p:inputText>
这基本上让用户在输入inputText时对表执行过滤。但问题是用户打字速度很快。我想停止下一个ajax调用,直到当前ajax调用完成。我怎样才能做到呢?
既然您已经使用了Primefaces,那么您可以使用AutoComplete组件来执行您想要做的事情。第一个例子展示了使用arraylists....的基本自动完成功能你可以参考一下。
Autocomplete还具有延迟对服务器的访问以补偿快速输入的特性——queryDelay
属性。详细信息请参阅用户指南