请求从LazyDataModel.load使用ajax更新组件?

时间:2013-05-29 14:24:54

标签: jsf jsf-2 primefaces

我使用的是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过滤刷新元素?

1 个答案:

答案 0 :(得分:5)

在呈现阶段调用load LazyDataModel方法,此时添加其他组件进行更新为时已晚。

但是,可以添加JavaScript执行命令:

context.execute("show_message()");

其中,函数show_message将在客户端显示消息,从而可以使用单个请求完成任务。