我使用的是PrimeFaces 3.5版。
我想实现消息,通知DataTable中的过滤器返回的行太多,只显示前50行。
我已尝试使用Messages和outputText执行此操作。我将文本设置为显示并请求更新:
RequestContext context = RequestContext.getCurrentInstance();
context.update("form:message");
context.update("form:text");
message = "Too many rows";
组件:
<p:message id="message" for="message"/>
<h:outputText id="text" value="#{userPicker.model.message}"/>
但是,我没有在部分请求响应中看到正确的更新部分。是否可以从LazyDataModel.load
函数中请求更新组件(如果,我在这里做错了什么)?如果不可能(为什么?)我怎样才能强制从DataTable过滤刷新元素?
答案 0 :(得分:5)
在呈现阶段调用load
LazyDataModel
方法,此时添加其他组件进行更新为时已晚。
但是,可以添加JavaScript执行命令:
context.execute("show_message()");
其中,函数show_message
将在客户端显示消息,从而可以使用单个请求完成任务。