【问题标题】:How to render an element whose id is automatically generated in JSF?如何渲染在 JSF 中自动生成 id 的元素?
【发布时间】:2012-04-12 07:47:52
【问题描述】:

我将 primefaces 的数据表放在 primefaces tabView..

我正在使用过滤器。随着网格中新值的更新,我想重新渲染过滤器。

过滤器 id 生成为:tabViewId:ActiveTabIndex:DatatableID:ColumnName_filter。

在输入文本的值更改时,我想重新渲染过滤器。

<p:column width="40">
                    <h:inputText id="vendorInputTxt" value="#{articlePromo.proveedor}"
                        styleClass="inputTextStyle">
                        <f:ajax event="change" render=":categoryTabView:0:promotionDetail_dataTable:vendorColumnHeader_filter"
                            listener="#{promotionDetailManagedBean.onProveedorChange}" />
                    </h:inputText>
                </p:column>

但它给出了错误, contains an unknown id ':categoryTabView:0:promotionDetail_dataTable:vendorColumnHeader_filter' - 无法在组件 vendorInputTxt 的上下文中找到它

再次渲染过滤器的正确方法是什么?

谢谢, 希哈

【问题讨论】:

    标签: jsf-2 primefaces


    【解决方案1】:

    尝试一个 js 调用 oncomplete 到:widget_&lt;dataTableId&gt;.filter(); 其中 dataTableId 是给 dataTable 的 id。

    【讨论】:

    • 更好的方法是将widgetVar属性分配给p:dataTable并在其上调用.filter()
    • @Fallup 我同意。这是更清洁和正确的方法。
    • 在 jsf2 中没有“oncomplete”属性。如果我错了,请纠正我。我没有在文档中找到它。试跑也是。但是,我想,属性不存在。
    • 改用p:ajax
    • 哦,是的,我完全忘记了,p:ajax 确实有 oncomplete,所以你可以将 dataTablesWidgetVar.filter() 绑定到它的 oncomplete。
    猜你喜欢
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2011-12-15
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多