データテーブルにカスタムファセットを定義する可能性があります。私が定義しようとしているファセットにはp:menubutton
が含まれています。これらのファセットはページネーターに含まれているため、p:menubutton
はデータテーブルの上部と下部に表示されています。最初の問題は、クライアントのIDがと重複していた(と私はmenubuttonを開くことができなかった)です。プット2 p:menubutton
(または別のコンポーネント)が私の修正プログラムが動作しない場合は、ので、私は子コンポーネントにファセットのid parentが含まれていない
... https://github.com/primefaces/primefaces/pull/2651/filesを参照して、特定のIDを設定することにより、この問題を修正しますが、部分的に動作します。 A UIpanel
は、複数の要素が含まれている場合にはgetFacet()
メソッドで作成され、idを強制的に設定してもこのidを子に設定しませんが、イベントのように見えます。私はp:menubutton
は親ID(例えばtable_form:table_form:table_paginator_top
)が含まれて期待される出力HTML
<div id="table_form:table_form:table_paginator_top">
<span id="table_form:table_form:j_idt246" class="ui-menubutton">
<button id="table_form:table_form:j_idt246_button" />
</span>
</div>
UIComponent elementFacet = uidata.getFacet(element);
if(elementFacet != null) {
// Determines a new id
String facetName = element.replaceAll("[\\W+]", "_").toLowerCase();
elementFacet.setId(uidata.getId() + facetName + position);
elementFacet.encodeAll(context);
}
が、それはそれをしない、その理由:Firts、の修正を見てみましょうか?
あなたが最も可能性のNamingContainerされていない面に関係あると思います、これは起こらない理由を使用する必要があります。それがあったとしても、すでに「ユニーク」なので、あなたの「修正」は必要ないでしょう。しかし、2つの異なるid(xhtmlに1つのボタンを持つ)を持つ2つのボタン(または他のもの)がある場合は、個別に更新するのがより難しくなります。だから私はあなたがこれを助けるために、より複雑な修正やPFエンジニアの強化を要請するべきだと思います。申し訳ありません..(しかし、おそらくBalusCはトリックを知っています) – Kukeltje
基本的に私はUINamingContainerの中でファセットの内容をカプセル化する必要がありますか? – Rapster
おそらく...上と下の重複を解決するかどうかは考えていません... – Kukeltje