2017-11-09 16 views
0

Primeface Dialog Frameworkで開いたダイアログからヘッダーを削除する方法はありますか? 私はカスタムヘッダーを設定できることを知っています(コードを見てください)。私はすべてのダイアログからそれを削除したくないので、CSSクラス.ui-dialog .ui-dialog-titlebarを上書きすることはオプションではありません。Primefacesダイアログからヘッダーを削除

Map<String,Object> options = new HashMap<String, Object>(); 
     options.put("modal", true); 
     options.put("width", 640); 
     options.put("height", 340); 
     options.put("contentWidth", "100%"); 
     options.put("contentHeight", "100%"); 
     options.put("headerElement", "customheader"); 

     RequestContext.getCurrentInstance().openDialog("viewCars", options, null); 
+0

あなたはcssクラスを追加できますそれを使ってただ1つのダイアログからそれを削除してください – Kukeltje

+0

ええ、それを追加する方法は?私はCSSのルールを.ui-dialog .ui-dialog-titlebarをオーバーライドし、display:noneを使って直接xhtmlページに含めようとしましたが、うまくいきません。私は、JavaScriptの準備ができている関数でCSSの属性を追加しようとしましたが、それはあまりにも動作しません。 – Zardo

答えて

1

jQueryのClass Selectorの助けを借りて行うことができます。

ダイアログ

 <script type="text/javascript"> 
      function removeDialogHeader(xhr, status, args){ 
       var showHeader=args.showDialogHeader; 
       if (!showHeader){ 
        //jquery gets all elements with class name ui-dialog-titlebar 
        var elements= $(".ui-dialog-titlebar"); 
        //to remove elements 
        elements.remove(); 
        //or you can achive the same effect by inserting display:none into element style 
        //elements.css("display", "none"); 
       } 
      } 
     </script> 

public void viewCars() { 
    Map<String,Object> options = new HashMap<String, Object>(); 
    options.put("resizable", false); 
    //... 
    RequestContext.getCurrentInstance().openDialog("viewCars", options, null); 
    RequestContext.getCurrentInstance().addCallbackParam("showDialogHeader", false); 
} 

ヘッダの可視性を設定可能にするために、マネージドBeanのメソッドを変更して、あなたはPを持っていると仮定して表示したい場所をページ内の次のJavaスクリプトを追加します:commandButtonのを示すために、ダイアログ、Ajaxの完了後にJS関数を呼び出す

<p:commandButton value="Show dialog" actionListener="#{testBean.viewCars()}" oncomplete="removeDialogHeader(xhr, status, args);"/> 
+0

それはクールですね。注:ボタンが配置されているページの「基本」ページにJavaScriptを挿入する必要があります。 – Zardo

+1

@ Zardoそして「ベース」ページは「ターザンの言葉」で説明しようとしたときに「ダイアログを表示したいページ」です。あなたの説明は私の方がはるかに良いです。はい、あなたのボタンがあるページです。 –

関連する問題