2014-07-15 15 views
6

Tôi đang xây dựng trang web bằng cách sử dụng các nguyên tố 5 và máy chủ wildfly. Tôi gặp vấn đề với việc sử dụng thành phần. Tôi có trong mỗi hàng như sau. Button đã xác định thuộc tính actionlistener gọi phương thức bean sao lưu và sau đó nó sẽ hiển thị hộp thoại. Dưới đây là một số mã:Tiện ích hộp thoại Primefaces 5.0var

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
       xmlns:h="http://xmlns.jcp.org/jsf/html" 
       xmlns:p="http://primefaces.org/ui" 
       xmlns:pt="http://java.sun.com/jsf/composite/components" 
       template="../templates/mainTemplate.xhtml"> 

    <ui:define name="title"></ui:define> 

    <ui:define name="main-content"> 

     <h:form> 
      <p:dataTable id="dataTable" value="#{bean.list}" var="item" 
         styleClass="hide-column-header small-text"> 

       <!-- some columns --> 

       <p:column style="width: 18%; text-align: center;"> 
        <p:commandButton value="Open dialog" actionListener="#{bean.buttonListener(item)}" oncomplete="PF('dlg').show();"/> 
       </p:column> 

      </p:dataTable> 
     </h:form> 

     <p:dialog id="dialog" widgetVar="dlg" resizable="false" modal="true" 
        header="Dialog"> 
      <h:form> <!-- some inputs --> </h:form> 
     </p:dialog> 
    </ui:define> 

</ui:composition> 

Nhưng nó không hoạt động. Tôi kiểm tra giao diện điều khiển chrome và nhận được thông báo "Widget cho var 'Widget cho var' dlg 'không có sẵn!" khi bấm vào nút vì vậy tôi đã kiểm tra 'Primefaces.widgets' và thực sự không có widget cho hộp thoại của tôi. Bất cứ ai có thể giúp tôi với điều đó?

// chỉnh sửa
Ok tôi cuối cùng cũng làm cho nó hoạt động. Bằng thử và sai, tôi đã tìm thấy dòng này trong mẫu của tôi:

<script type="text/javascript" src="//code.jquery.com/jquery-2.1.1.min.js"></script> 

Sau khi xóa mọi thứ bắt đầu hoạt động theo kế hoạch. Tôi nghĩ rằng đó là bởi vì thủ tướng đi kèm với phiên bản riêng của jquery phải không?

+0

Bạn có thể thử PF (': dlg')? – adam0404

+0

Trường hợp của bạn rất cơ bản, nó sẽ hoạt động. Kiểm tra xem bạn có bất kỳ lỗi javascript nào khi tải trang không. –

+0

bạn cũng có thể vui lòng đăng mã 'bean' của mình không? – alex

Trả lời

5

Thủ tướng đã có jQuery, vì vậy, bạn không nên sử dụng một thư viện jQuery khác khi làm việc với Primefaces.

Cố gắng xóa bạn khỏi jQuery bên ngoài và gọi hộp thoại bằng lệnh PF ('dlg'). Show();

Bạn có thể kiểm tra điều này và những thay đổi khác trong hướng dẫn di chuyển tại địa chỉ: https://code.google.com/p/primefaces/wiki/MigrationGuide

+0

Làm việc cho tôi! Cảm ơn. – Dandelion

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