如何以编程方式应用DataTable过滤器?

时间:2012-06-04 14:30:44

标签: primefaces

使用PrimeFaces演示过滤DataTablehttps://www.primefaces.org/showcase/ui/data/datatable/filter.xhtml)作为示例,我希望能够在表格外提供“过滤”链接,供用户点击(比如说Volvo,Forw) ,宝马等)。当用户点击链接时,我想在制造商过滤器下拉列表中切换所选项目并应用过滤器。我无法弄清楚如何进入过滤器属性来进行更改。这可以通过javescript完成吗?如何访问选择列表并设置当前选择?

更新
在Daniel的链接之后,我设法让下拉选项改变,但我无法让过滤器应用。在过滤器基于输入字段的列中,触发keyup会导致数据过滤,但我无法确定要在select上触发哪些事件以使其过滤。这是我正在使用的代码:

<p:commandLink id="filterLink" 
    value="Click to filter to Volvo Only" 
    onclick="$('#carForm\\:dataTable\\:manufacturerColumn_filter').val('Volvo'),
        $('#carForm\\:dataTable\\:manufacturerColumn_filter').trigger('filter')"
/>

上面创建的链接会将制造商过滤器切换为沃尔沃,但不会导致数据过滤。

1 个答案:

答案 0 :(得分:0)

关键是在表级调用过滤器事件。所以我上面的代码应该是:

<p:commandLink id="filterLink" 
value="Click to filter to Volvo Only" 
onclick="$('#carForm\\:dataTable\\:manufacturerColumn_filter').val('Volvo'), carsTable.filter()"
/>