0

私はこの構造を持っています:

<h:dataTable id="baselist">
   <h:dataTable id=childlist">
       <p:commandLink update="should only update childlist">
   </h:dataTable>
</h:dataTable>

考えられることはすべて試しましたが、childlistが見つからないというエラーしか表示されません。このまま更新できないのでしょうか?

4

2 に答える 2

0

childlist データテーブルの ID にはインデックス番号が含まれていることに注意してください。

例えば。:

親テーブルの最初の行にある子リスト テーブルの ID は次のとおりです。:form:baselist:0:childlist

親テーブルの 2 行目にある childlist テーブルの ID は次のとおりです。:form:baselist:1:childlist

親テーブルの 3 行目にある childlist テーブルの ID は次のとおりです。:form:baselist:2:childlist

等々...

解決:

親テーブルを更新して、すべての行の子リスト テーブルを含め、すべてが更新および同期されるようにします。

例えば。

update=":form:baselist"

未実現:

ブラウザでレンダリングされたページを右クリックし、ページのソースを表示すると、要素の完全修飾 ID を確認できます。

于 2013-10-24T00:16:03.550 に答える
0

使ってみることはでき#{component.parent.clientId}ますが、思ったほどの効果は得られません。

JSF は通常、構造全体を再構築します。回答を参照してください。

さらに、 を変更した場合、ネーミング コンテナ ID の一貫性が失わbaselistれるため、問題が発生します。:0,:1たとえば、最初の要素を から削除するとbaselist、JSF はビューを新しい ID で再構築します。などに:form:baselist:1:childlist'なります。:form:baselist:0:childlist

エラーが発生するかどうかはわかりませんが、遅かれ早かれ何らかの問題が発生することは確かです。

于 2013-10-24T10:51:48.653 に答える