1

我正在使用 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 过滤中强制刷新元素?

4

1 回答 1

5

load方法LazyDataModel在渲染阶段被调用,当添加额外的组件来更新时为时已晚。

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

context.execute("show_message()");

where 函数show_message将在客户端显示消息,从而可以通过单个请求完成任务。

于 2013-05-31T11:51:00.723 回答