2

私はグラスフィッシュ3.1.2でJSF 2でPrimeFaces 3.2を使用しています。

さまざまな問題に関する情報を含む検索結果を表示する が<p:dataTable>あります (問題はユーザーに割り当てられます)。割り当てられたユーザーのアイコンをクリックすると、<p:dialog>ポップアップが表示されます。ユーザー アイコンと対応するダイアログは、コンポジットを使用して実装されます。コンポジット内で、ダイアログ コンポーネントごとに一意の ID を必要とするいくつかの jQuery 関数を使用しています。この問題を解決する方法が見つかりません。

これまでの私の調査:

リストにユーザーが 1 人しかいない限り、widgetVar 属性を設定する必要がありますが、dataTable 内では、widgetVar は多くのコンポジットに対して一意ではないようです。ユーザーは検索結果内に複数回表示される可能性があるため、次のように widgetVar をセットアップできません。

<ui:param name="myWidgetVar" value="widget_#{user.id}" />

このように使用します

<p:dialog widgetVar="#{myWidgetVar}">

また、 #{cc.id} を使用しても問題は解決しません。これは、常に同じであるネーミング コンテナー部分なしでウィジェットの ID のみを返すためです。

HTML で表示される完全な ID が必要です (例: form:jdt123:dialog:456) - どうすれば取得できますか?

誰も何をすべきか知っていますか?

ありがとうピート

4

2 に答える 2

2

答えてくれてありがとう。あなたは私の無関係な問題を解決しましたが、私はあなたの問題に対する別の解決策に出くわしたと思います.

PrimeFaces ユーザー ガイド ( http://primefaces.org/documentation.html ) から:

8.2 EL関数

PrimeFaces は、一般的なユース ケースのヘルパーである組み込みの EL 拡張機能を提供します。

共通機能

PrimeFaces ユーザーガイド 8.2 EL 関数表

成分

<h:form id="form1">
     <h:inputText id="name" />
</h:form>
//#{p:component(‘name’)} returns ‘form1:name’

WidgetVar

<p:dialog id="dlg">
     //contents
</p:dialog>
<p:commandButton type="button" value="Show" onclick="#{p:widgetVar(‘dlg’)}.show()" />

WidgetVar の実装に最も関心があるようです。

于 2012-11-13T18:42:38.003 に答える
2

私の解決策は、#{cc.clientId}まだ知らなかったものを使用しています。
これにより、UINamingContainer#getSeparatorChar (例: form:jdt123:dialog:jdt456) で接着された一連の識別子で構成される完全な html 要素 ID が得られます。

于 2012-08-24T14:09:47.620 に答える