2012-01-30 28 views
17

Trong dự án JSF 2.0 (trên JBoss AS 7) của tôi, tôi muốn về ajax gửi các hình thức của tôi để hiển thị trạng thái biểu tượng nhỏ kích hoạt trên bắt đầu và giai đoạn hoàn tất, để cho người dùng cuối biết rằng có điều gì đó vẫn đang xảy ra.Đi qua tham số thêm để f: ajax chức năng onevent

primefaces p:ajaxStatus không hữu ích ở đây, vì tôi muốn có nhiều biểu tượng khác nhau ở các vị trí khác nhau trong trang của mình.

Tôi tìm thấy một chút giải pháp trong câu hỏi này: "How show different ajax status in same input?", nhưng tôi vẫn gặp sự cố: để làm cho hàm javascript của tôi có thể sử dụng lại được, tôi cần cung cấp tham số bổ sung cho cuộc gọi.

tôi đã làm một cái gì đó như thế này:

<h:commandLink value="do something boy!"> 
    <f:ajax render="@form" execute="@form" listener="#{myBean.doStuff}" 
     onevent="showProgress" /> 
    <f:param name="extraParam" value="extraValue" /> 
</h:commandLink> 

và tôi có thể thấy tham số "extraParam" gửi đến máy chủ thông qua các yêu cầu, nhưng trong phương pháp javascript showProgress của tôi, tôi không thể phục hồi nó thông qua các tham số đưa ra chỉ.

Vì vậy, câu hỏi của tôi là: tôi có thể cung cấp cho f:ajax onevent phương pháp javascript tôi một tham số thêm vào một số thông qua f:param (hoặc có thể f:attribute, hoặc bất cứ điều gì khác)?

Trả lời

38

Quấn nó trong một chức năng ẩn danh trong đó bạn chuyển nó làm đối số thừa.

<h:commandLink value="do something boy!"> 
    <f:ajax render="@form" execute="@form" listener="#{myBean.doStuff}" 
     onevent="function(data) { showProgress(data, 'extraValue') }" /> 
</h:commandLink> 

với

function showProgress(data, extraParam) { 
    // Use "data" argument the usual way. 
    // The "extraParam" argument will contain "extraValue" in above example. 
} 
+3

Oww, thông minh thực sự! –

+0

Bạn được chào đón. – BalusC

+0

Giá trị 'extraValue' có thể là biểu thức jsf không? Tôi có nghĩa là có thể là một cái gì đó như 'onevent =" chức năng (dữ liệu) {showProgress (dữ liệu, '# {myBean.whatever}')} '? Thx! – dcalap

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