0

私の JSF/Primefaces ページには、タブビューを含むフォームがあり、各タブにはアコーディオン パネルが含まれ、各アコーディオンにはデータ テーブルが含まれています。単一のデータ テーブルの完全な 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 に答える