Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 如何呈现在JSF中自动生成id的元素?_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 如何呈现在JSF中自动生成id的元素?

Jsf 2 如何呈现在JSF中自动生成id的元素?,jsf-2,primefaces,Jsf 2,Primefaces,我将primefaces的数据表放在primefaces选项卡上 我正在使用过滤。随着网格中新值的更新,我想重新渲染过滤器 过滤器id生成为:tabViewId:ActiveTabIndex:DatatableID:ColumnName\u过滤器 在输入文本的值更改时,我想重新渲染过滤器 <p:column width="40"> <h:inputText id="vendorInputTxt" value="#{articlePromo

我将primefaces的数据表放在primefaces选项卡上

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

过滤器id生成为:tabViewId:ActiveTabIndex:DatatableID:ColumnName\u过滤器

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

<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>

但它给出了错误,包含未知id:“categoryTabView:0:promotionDetail_dataTable:vendorColumnHeader_filter”-无法在组件VendorInputText的上下文中找到它

重新渲染过滤器的正确方法是什么

谢谢,
Shikha

尝试一个js调用来完成:
widget_u.filter()
其中dataTableId是给定给dataTable的id。

更好的方法是将
widgetVar
属性分配给
p:dataTable
并对其调用
.filter()
。@我同意。这是更干净、更恰当的方法。在jsf2中没有“oncomplete”属性。如果我错了,请纠正我。我没有在文档中找到它。试过跑步也一样。但是,我想,属性不存在。请尝试。哦,是的,我完全忘记了,
p:ajax
确实有
oncomplete
,因此您可以将
dataTablesWidgetVar.filter()
绑定到它的oncomplete。