2011-08-01 18 views
5

Tôi dường như có một vấn đề mà tôi có a4j: commandLink trên một phong phú: popupPanel nhưng hành động không bắn. Các xhtml trông như sau:Richfaces 4 a4j: commandLink hành động không kích hoạt trong phong phú: popupPanel

<rich:popupPanel id="rate-panel" modal="true" height="444" width="780" top="60" show="false" onmaskclick="#{rich:component('rate-panel')}.hide()" styleClass="cs-modal"> 
    /**Some html here**/  
    <a4j:commandLink immediate="false" action="#{venueScore.up}" render="rate-panel" styleClass="rate love"> 
    <span>Love it</span> 
    </a4j:commandLink>  
    /**Some more html here**/  
</rich:popupPanel> 

Và bean được quản lý trông như sau:

@Named("venueScore") 
@ViewScoped 
public class VenueScoreManager extends BaseManager implements Serializable { 
    public void up() { 
    System.out.println("TEST"); 
    //Do something 
    } 
} 

tôi đã thực hiện các bean được quản lý @ViewScoped.

Tôi cũng đã thử thêm một <h:form> quanh commandLink tuy nhiên, điều này thậm chí còn ít hơn nếu không có nó. Tôi thực sự nghĩ rằng đó là vì commandLink nằm bên trong <h:form> trong đó liên kết đã mở popupPanel.

Dù sao, ai đó có thể vui lòng chỉ cho tôi theo hướng tại sao hành động không kích hoạt?

Trả lời

8

Ok, vì vậy tôi đã tự khắc phục sự cố. Sau khi vặn vẹo xung quanh tôi đã làm việc ra rằng tôi chỉ cần thêm một <a4j:region> xung quanh nội dung trong <rich:popupPanel>. Vì vậy, bây giờ là xhtml trông giống như sau:

<rich:popupPanel id="rate-panel" modal="true" height="444" width="780" top="60" show="false" onmaskclick="#{rich:component('rate-panel')}.hide()" styleClass="cs-modal"> 
    <a4j:region id="panel-region"> 
    /**Some html here**/  
    <a4j:commandLink immediate="false" action="#{venueScore.up}" render="panel-region" styleClass="rate love"> 
     <span>Love it</span> 
    </a4j:commandLink>  
    /**Some more html here**/  
    </a4j:region> 
</rich:popupPanel> 
+0

Bạn không thể tin được bao nhiêu thời gian tôi dành để tìm câu trả lời này! Bạn đã đạt được giải pháp này như thế nào? –

+0

@ AmrH.AbdelMajeed - Tôi có thể dành nhiều thời gian như bạn. Thử nghiệm và lỗi cuối cùng tôi nghĩ đã giải quyết nó;) –

+0

Cảm ơn bạn! :-D – Gatekeeper

0

Tôi biết rằng đó là một câu hỏi cũ nhưng như tôi đã có chính xác cùng một vấn đề, tôi đã dành rất nhiều thời gian trước khi sửa chữa nó, có lẽ nó sẽ giúp người khác. Trước tiên, tôi đã thử giải pháp được đề xuất ở trên nhưng nó không hoạt động. Cuối cùng, tôi thấy chủ đề này: Issues closing rich:popupPanel via show condition, RF 4.0

Và tôi đã thêm thuộc tính DOMElement để bật lên của tôi:

<rich:popupPanel 
id="newMailPopup" 
**domElementAttachment="form"** 
...> 

Và bây giờ, a4j tôi: commandLink hoạt động hoàn hảo :-)

0

tôi đã có cùng một vấn đề, a4j: commandLink chỉ hoạt động sau khi lần đầu tiên nhấp vào .... đặt poppanel bên trong biểu mẫu và thêm domElementAttachment ...

<h:form id="myform"> 
    <rich:popupPanel id="pop" domElementAttachment="form"> 
     ... 
     <a4j:commandLink /> 
     ... 
    </rich:popupPanel> 
</h:form>