在我的JSF / Primefaces页面中,我有一个包含tabview的表单,其中每个选项卡包含一个折叠面板,每个手风琴包含一个数据表。单个数据表的完整ID类似于id="form:tabs:0:accordion:0:table"
每个选项卡还包含一个命令按钮,该按钮必须更新选项卡本身内的数据表,因此不会更新其他选项卡中的表。
使用Primefaces选择器,我设法用“table”update="searchValue @('div$=table')
更新id完成的所有数据表,但是我无法处理id为“0:table”的所有数据表,其中“0”是动态的(基于当前选项卡)。
我尝试过:
<ui:param name="ta" value="#{settore.id - 1}:table" />
<p:commandButton id="plainSearch" value="Filter"
action="#{myBean.search()}"
update="@('div$=#{ta}')">
但它给了我一个Javascript错误:Uncaught Syntax Error: Unexpected identifier
,然后更新整个表单。
如何正确地将变量传递给Primefaces选择器?
这是我的XHTML页面:
<h:form id="form">
<p:tabView id="tabs" value="#{myBean.sectors}" var="tab">
<p:tab id="tab" title="#{tab.description}">
<p:commandButton id="plainSearch" value="Filter"
action="#{myBean.search()}"
update="@('div$=table')">
<p:accordionPanel id="accordion" value="#{myBean.getTabs()}" var="tab" multiple="true" activeIndex="#{myBean.activeIndexes}">
<p:tab id="accordionTab" title="#{tab.title}">
<p:dataTable id="table" var="row" value="#{myBean.getObjects()}" emptyMessage="Empty table">
<p:column headerText="Code">
<h:outputText value="#{row.codice}" />
</p:column>
<p:column headerText="Description">
<h:outputText value="#{row.descrizione}" />
</p:column>
</p:dataTable>
</p:tab>
</p:accordionPanel>
</p:tab>
</p:tabView>
</h:form>
答案 0 :(得分:0)
我对(jquery)选择器本身有点困惑。如果我理解正确,那么此时使用jquery选择器,@()的语法只会将其识别为jquery选择器。
如果它是一个jquery选择器(Attribute Ends With Selector),它不应该是这样的:
$(div[id$=table])
以及ID为
的版本$(div[id$=#{ta}\\:table])
编辑:我更新了代码示例(没有引号)