【发布时间】:2015-09-23 11:47:34
【问题描述】:
我们的项目使用PF5.1,我们在一个复合组件中有一个dataTable。所以在页面渲染之后。 dataTable 的 id 有点像 j_idt123:tableForm:tableId。
我们需要在搜索之前清除表格过滤器的东西。我尝试使用以下代码在支持 bean 中找到它,但它返回 null。
FacesContext.getCurrentInstance().getViewRoot().findComponent("tableId");
由于这个组件会在不同的 xhtml 文件中使用,这个“j_idt123”的东西每次都会改变。获得桌子的正确方法是什么?
【问题讨论】:
-
您可能想退后一步,具体重新询问“我们需要在搜索前清除表格过滤器内容” 问题,而不是尝试解决那个问题。可能有更好的方法来解决不需要手动从树中抓取组件的“过滤东西”问题(你应该尽量避免在支持 bean 中)。
-
@BalusC 我尝试使用 PF('datatableWidgetVar').clearFilters() 清除表过滤,但似乎不起作用,然后我想在服务器端清除它。当表 id 是静态的但不确定如何在复合组件中获取该数据表时,它将起作用。
-
也许这个问题的top answer可以帮到你:stackoverflow.com/questions/23797476/…
-
@sinclair 谢谢。我会接受你的回答
标签: jsf jsf-2 composite-component clientid