2

JSF2.0を使用しています。h:dataTableの'id'属性で変数を使用しようとすると、その変数値を取得しません。

以下に説明するように、ui:repeatのインデックスとしてid値を持つui:repeat内にh:dataTableがあります。

    <ui:repeat var="planMap" value="#{planAccountMap.entrySet().toArray()}" varStatus="planMapStatus">

    <h:dataTable id="planTable#{planMapStatus.index}" value="#{planMap.value}" var="accountList">

ループ内のh:dataTableに対して動的IDを生成できるかどうかを知っている人はいますか?

テーブルIDを使用するJavaスクリプトがありますが、ループ内の各テーブルに一意のIDを設定できないため、壊れています。

4

3 に答える 3

0

繰り返し可能なコンポーネント内のコンポーネントには、常に動的なクライアントIDがあります。これはできません。

おそらく代わりに、dataTableコンポーネントに一意のスタイルクラスを割り当て、jQueryセレクターを使用して。内のすべてのdataTableオブジェクトの配列を返すことができますui:repeat

jQuery('.SomeClass');
于 2012-10-01T11:09:32.727 に答える
0

私はあなたと非常によく似たことをします。データテーブル列内にUI:repeatがあります。tbh、fire bugをチェックインすると、データテーブルIDはui:repaet内に配置されたときに一意になります。

planMap:0:yourdatatableID
于 2012-10-01T14:31:53.403 に答える
0

この問題は、datatable内でdatatableを使用することで解決できます。2番目のデータテーブルは、次のように最初のデータテーブルの列内に保持されます。

<h:dataTable id="outerTable" value="#{planAccountMap.entrySet().toArray()}" var="planMap" width="100%">
  <h:column> 
  <h:dataTable id="planTable" value="#{planMap.value}" var="accountList"
  headerClass="tablehead" 
  rowClasses="'',altrowcoloropt1"
  first="0">
    <h:column>
    <f:facet name="header">
        <h:outputText value="Date" />
    </f:facet>
        <h:outputText value="#{accountList.date}"/>
    </h:column>
    <h:column>
      <f:facet name="header" >
        <h:outputText value="Account Name" />
    </f:facet>
    <h:outputText value="#{accountList.accountName}"/>
  </h:column>
</h:dataTable>
</h:column>
</h:dataTable>

outerTable:0:planTableこれにより、一意のIDを、として取得します。これによりouterTable:1:planTable、一意のIDがデータテーブル内の各要素に拡張されますouterTable:1:planTable:1:columnidouterTable:0:planTable:0:columnid

于 2012-10-05T11:34:33.673 に答える