0

在我的 JSF/Primefaces 页面中,我有一个包含 tabview 的表单,其中每个选项卡包含一个手风琴面板,每个手风琴包含一个数据表。单个数据表的完整 id 类似于id="form:tabs:0:accordion:0:table"

每个选项卡还包含一个命令按钮,该按钮必须更新选项卡本身内的数据表,因此它不会更新其他选项卡内的表。

使用 Primefaces 选择器,我设法更新了所有 id 以 "table": 结尾的数据表update="searchValue @('div$=table'),但我无法解决所有 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>
4

1 回答 1

0

我对(jquery)选择器本身有点困惑。如果我理解正确,primefaces 此时正在使用 jquery 选择器,@() 的语法只会将其识别为 jquery 选择器。

如果它是一个 jquery 选择器(Attribute Ends With Selector)不应该是这样的:

$(div[id$=table])

对于带有 id 的版本:

$(div[id$=#{ta}\\:table])

编辑:我已经更新了代码示例(不带引号)

于 2013-03-22T14:28:31.170 回答