2017-11-09 1 views
0

Primeface Dialog Framework로 열린 대화 상자에서 머리글을 제거 할 수 있습니까? 커스텀 헤더 (snipped 코드 참조)를 설정할 수 있다는 것을 알고 있지만, 그것을 제거하는 방법은 무엇입니까? 모든 대화 상자에서 제거하고 싶지 않으므로 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 클래스를 추가 할 수 있습니다. 그것을 사용하여 단 하나의 대화 상자에서 제거하십시오. – Kukeltje

+0

음,하지만 어떻게 추가합니까? 나는 CSS 규칙을 .ui-dialog .ui-dialog-titlebar를 오버라이드하고 display : none을 사용하여 직접적으로 시도했다. 그러나 작동하지 않는다. 나는 자바 스크립트 준비 함수에서 CSS 속성을 추가하려고 시도했지만 doens't도 작동합니다. – 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); 
} 

구성 헤더 가시성을 만들기 위해 관리 빈 메소드를 수정

대화 보여주고 싶은 페이지 내의 자바 스크립트를 다음 추가 :있는 명령이 보여 대화 상자에서 Ajax를 완료 한 후 JS 함수를 호출하십시오.

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

멋지다. thx. 참고 : 버튼이있는 페이지 인 "기본"페이지에 자바 스크립트를 삽입해야합니다. – Zardo

+1

@ Zardo 그리고 "base"페이지는 "Tarzan words"로 설명하려고했던 것처럼 "dialog를 보여주고 싶은 페이지"입니다. :). 당신의 설명은 내 것이 훨씬 낫다. 예, 버튼이있는 페이지입니다. –

관련 문제