1

<p:dataGrid>可変数のパネルを含むPrimeFacesコンポーネントがあります。各パネルには、いくつかの派生コンポーネントが含まれています。これらの各パネルの中に削除ボタンがあり、削除できます。dataGridの外にも追加ボタンがあります。ボタンを使用する代わりにimmediate="true"、各パネルの各コンポーネントに必要な属性を設定する方法を理解しました。

例えば:

required="#{empty param['vehicleGrid:0:btnDelete'] and empty param['btnAdd']}". 

dataGridのすべての削除ボタンと追加ボタンについて、コンポーネントの検証を無視します。

これは、dataGrid内にパネルがある場合に機能しますが、最初のパネルのみを参照します。すべてのパネルを動的にチェックする必要があります。おそらく、マークアップページから見る代わりに、paramが。であるため、Java用語で見る必要があるかもしれませんMap<String, String>

4

1 に答える 1

0

削除ボタン コンポーネントをビューにバインドし、UIComponent#getClientId()代わりに使用します。

<h:inputText ... required="#{empty param[deleteButton.clientId]}" />
...
<h:commandButton binding="#{deleteButton}" ... />

このようにして、適切なクライアント ID がパラメーター マップで検索され、パラメーター マップを反復する必要がなくなります。

于 2013-01-14T20:56:04.067 に答える