0
私は不思議なレンダリングの問題があります。オーバーレイパネルをボタンに付けようとしています。ボタンを押すと、パネルがレンダリングされます。しかし、パネルのサブコンポーネントはそうではありません。パネルが表示され、ボタンをダブルクリックすると、サブコンポーネントがレンダリングされます。同時に、パネルがレンダリングされずにダブルクリックすると、サブコンポーネントはレンダリングされません(パネルは表示されません)。p:overlayPanelがサブコンポーネントを正しくレンダリングしない
生成されたhtmlと計算されたCSSは、ペイントされたコンポーネントとペイントされていないコンポーネントの両方で同じです。 問題がどこにあるか知っていますか?私はいくつかの設定が欠けていますか?私は何かを見落としたのですか、それともバグですか?
PrimeFacesテンプレート:
<p:layoutUnit position="center">
<h:form>
<p:commandButton id="chooseLangBtn" value="Btn" type="button" />
<p:overlayPanel id="langPanel" for="chooseLangBtn" showCloseIcon="true" dismissable="true">
<p:selectOneListbox id="langSelect"
rendered="true"
value="#{selectOneLanguageView.language}"
converter="languageConverter"
var="t" filter="true"
filterMatchMode="startsWith">
<f:selectItems value="#{languageService.languages}"
var="lang"
itemLabel="#{lang.name}"
itemValue="#{lang}" />
<p:column>
<h:graphicImage width="22px" alt="#{lang.name}" library="main" name="images/flags/var/#{t.code}.svg"/>
</p:column>
<p:column>
<h:outputText value="#{t.name}" />
</p:column>
</p:selectOneListbox>
</p:overlayPanel>
</h:form>
'p:overlayPanel'は子コンポーネントを 'レンダリング'せず、自身をレンダリングします。また、レイアウトを使わずに(mcveを作成する段階で)試してみましたか?また、overlayPanelのドキュメントを読んでください...そこにあるコンポーネントと関連するものがあります。 – Kukeltje
ありがとうあなたの答えはKukeltjeですが、私はテーマバグのように思えます。テーマを他のテーマに変更しても、ペイントに問題はありませんでした。https://github.com/primefaces/themes/問題/ 10 – JiangHongTiao
どのテーマが失敗し、どのテーマがOKですか?あなたのPFバージョンは何ですか? – Kukeltje