将其他参数传递给分页上的LazyDataModel加载方法

时间:2018-02-15 15:09:51

标签: ajax primefaces datagrid paginator

我想在单击分页符按钮时传递其他参数。数据如下所示:

<p:inputText id="id" value="#{group.id}" type="hidden" />
or
<f:attribute name="id" value="#{group.id}" />

我可以使用这样的东西吗?

with dates as (
select 
generate_series('2018-01-01', current_date - 1, interval '1 day')::date 
as _day
order by 1 asc
)

1 个答案:

答案 0 :(得分:0)

如果您指的是load已实施的LazyDataModel方法,那么不,您不能简单地向该方法添加参数。

由于你在谈论&#34;当点击一个分页器按钮时,我认为你有一个page事件监听器。显然你还没有,所以把它添加到你的p:dataGrid

<p:dataGrid ...>
  <p:ajax event="page"
          listener="#{yourBean.yourListener}"/>
</p:dataGrid>

你的豆子:

public void yourListener(PageEvent event) {
  ...
}

在您的侦听器中,您可以将任何内容传递给自定义的延迟数据模型实例,并在load方法中选择它。您还可以向数据网格组件添加<f:attribute .../>,可以在侦听器方法中读取(参见Send additional parameter to Ajax event listener)。

请注意,您可以从页面活动中获取页面:

event.getPage();

这可能有助于确定要设置的其他数据。