我目前在延迟加载的DataTables上使用带有选项列表的过滤器。一切正常,但我希望能够根据当前选择的过滤器重新加载我的过滤器选项。
例如,我的DataTable有两个国家和地区字段,我想过滤
DataTable片段:
<p:dataTable var="d" widgetVar="personneContactTable" value="#{bean.dataModel}" id="myDataTable" lazy="true">
<p:column sortBy="country" filterBy="country" filterOptions="#{bean.getCountryOptions()}">
[...]
</p:column>
<p:column sortBy="region" filterBy="region" filterOptions="#{bean.getRegionOptions()}">
[...]
</p:column>
</p:dataTable>
我的豆子:
@ManagedBean(name = "bean")
@SessionScoped
public class MyBean implements Serializable {
LazyDataModel<MyStuff> dataModel;
String country;
String region;
public SelectItem[] getCountryOptions() {
return service.someMagic();
}
public SelectItem[] getRegionOptions() {
return service.someMoreMagic(country);
}
// + getters, setters, etc.
}
我尝试使用属性而不是方法,添加<p:ajax event="filter">
标记以尝试重新加载DataTable的一部分,但没有任何效果。我也找到了http://forum.primefaces.org/viewtopic.php?f=3&t=38087,但又出现了不可行的解决方案。
如何自动刷新filterOptions? (这是使用Primefaces 4 ELITE分支)