自动更新DataTable上的过滤器值

时间:2014-08-29 08:45:11

标签: jsf jsf-2 primefaces datatable

我目前在延迟加载的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分支)

0 个答案:

没有答案