2012-06-22 36 views
5

Tôi đang sử dụng các nguyên tố 3.3.1 và JSF 2 (Mojarra 2.1.9).Tạo các hộp thoại PrimeFaces động

Tôi có một trang có thành phần DataTable và Hộp thoại để hiển thị chi tiết các mục nhập DataTable. Điều đó rất đơn giản khi tôi có một hộp thoại. Những gì tôi muốn là để cố gắng cho phép người dùng mở hai hoặc ba dailogs với các chi tiết của các mục khác nhau trong cùng một thời gian. Có ai có ý tưởng làm thế nào để có được toàn bộ hộp thoại với AJAX từ máy chủ, không chỉ là một nội dung hộp thoại?

+0

Bản sao của http://stackoverflow.com/questions/8682277/how-to-programmatically-add-dialogs-with-primefaces – rags

+1

Tôi đã thấy câu hỏi đó, nhưng vấn đề của tôi hơi khác. Sự khác biệt chính là tôi muốn cho phép người dùng mở nhiều hộp thoại hơn cùng một lúc, vì vậy tôi không thể mã hóa cứng các hộp thoại trên trang. Chỉ có khả năng là có một hộp thoại cho mỗi mục nhập trong bảng mà không tốt vì phí trên mạng, và cũng không thể cho bảng nạp lười. – partlov

+0

Bạn đã tìm thấy giải pháp chưa? – atamanroman

Trả lời

6

Vâng tôi đã làm. Với mục đích này, tôi đã tạo các hộp thoại cần thiết lập trình trong bean sao lưu. Tôi biết đây không phải là thực tế tốt nhất, nhưng trong thời điểm này tôi nghĩ rằng đây chỉ là giải pháp khả thi. Trước hết, tôi đã thêm một bảng nhóm là vùng chứa cho các hộp thoại trên trang JSF của tôi. Sau đó, vào ủng hộ đậu Tôi có một số mã như thế này:

UIComponent panelGroup = facesContext.getViewRoot().findComponent("panel_id"); 
Dialog dialog = new Dialog(); 
dialog.setHeader("Sample"); 
dialog.setVisible(true); 
dialog.setMinimizable(true); 
... 
panelGroup.getChildren().add(dialog); 
... 
RequestContext requestContext = RequestContext.getCurrentInstance(); 
requestContext.update("panel_id"); 
3

ID hộp thoại cũng có thể động để bạn có thể tạo một số id hoặc một số giá trị khác và cung cấp cho nó.

<p:dialog header="Choose Delimiter Type" id="dialog" 
    widgetVar="exportDialog#{p.Id}" resizable="false" > 

và gọi qua nút;

<p:commandButton id="id" value="xxx" 
      actionListener="#{p.export2CSV}" ajax="false" 
      onclick="exportDialog#{p.tabId}.show()">     
     </p:commandButton> 
0

@newuserua Mã của bạn không được làm việc giá trị widgetVar là setted chỉ một lần khi tải trang

... 
requestContext.update("panel_id"); 

dòng trên được cập nhật hoàn chỉnh bảng điều khiển mới mẻ của nó tất cả hộp thoại hiện tại và nội dung của nó.

Các vấn đề liên quan