2017-11-20 9 views
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> 

空/レンダリング画像: enter image description here

+0

'p:overlayPanel'は子コンポーネントを 'レンダリング'せず、自身をレンダリングします。また、レイアウトを使わずに(mcveを作成する段階で)試してみましたか?また、overlayPanelのドキュメントを読んでください...そこにあるコンポーネントと関連するものがあります。 – Kukeltje

+0

ありがとうあなたの答えはKukeltjeですが、私はテーマバグのように思えます。テーマを他のテーマに変更しても、ペイントに問題はありませんでした。https://github.com/primefaces/themes/問題/ 10 – JiangHongTiao

+0

どのテーマが失敗し、どのテーマがOKですか?あなたのPFバージョンは何ですか? – Kukeltje

答えて

関連する問題