Primefaces 如何以编程方式应用DataTable筛选器?

Primefaces 如何以编程方式应用DataTable筛选器?,primefaces,Primefaces,以PrimeFaces演示过滤()为例,我希望能够提供表外的“过滤”链接供用户单击(例如沃尔沃、福鲁、宝马等)。当用户单击链接时,我想在“制造商过滤器”下拉列表中切换所选项目并应用过滤器。我还没有弄清楚如何访问过滤器属性来进行更改。这可以通过javascript实现吗?如何访问选择列表并设置当前选择 更新: 根据Daniel的链接,我成功地更改了下拉选择,但无法应用过滤器。在过滤器基于输入字段的列中,触发keyup会导致数据过滤,但我无法确定在select上触发什么事件以使其过滤。以下是我正在使

以PrimeFaces演示过滤()为例,我希望能够提供表外的“过滤”链接供用户单击(例如沃尔沃、福鲁、宝马等)。当用户单击链接时,我想在“制造商过滤器”下拉列表中切换所选项目并应用过滤器。我还没有弄清楚如何访问过滤器属性来进行更改。这可以通过javascript实现吗?如何访问选择列表并设置当前选择

更新:
根据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')"
/>


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

关键是在表级别调用过滤器事件。因此,我上面的代码应该是:

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


看看我的方法:对过滤器也这样做……谢谢Daniel。这是有用的,我能够应用全局过滤,正如你所展示的。我添加了一个更新,显示了我试图使用的代码。我无法确定我需要触发什么事件才能在选择上进行筛选。不客气,b.t.w当您发现某人的问题或答案对您有用时,您应该单击^(向上箭头)按钮(查看他们的工具提示)。。。在这种情况下,两者都是:)谢谢你的提醒。每当我在这里搜索信息时,我需要养成更多的习惯。别忘了在输入元素上触发“keyup”在我的情况下,我想从表外的commandlink触发过滤器,而不是从输入元素。.filter()调用使表根据commandlink输入的值进行筛选。