我目前正在使用IceFaces 1.8,並一直試圖找到一種簡單的方法來鏈接UI組件上的效果。例如,我在頁面右上方有一個「顯示幫助」鏈接。點擊後,幫助文本將顯示在用戶的某些控件下方。我希望這個文本通過滑下來然後突出顯示。IceFaces 1.8中的EffectQueue和鏈接效果
我有我的豆返回true或false基本isRenderHelp()
方法,並用它來渲染使用的<ice:effect>
標籤fire
屬性的效果,所以它看起來是這樣的:
<ice:effect effectType="slidedown" fire="#{myBean.renderHelp}">
<ice:effect effectType="slideup" fire="#{!myBean.renderHelp}">
當幫助鏈接切換bean中的renderHelp標誌時,這可以使幫助部分滑入和滑出。第一次單擊鏈接之前renderHelp返回null是一個小例外,以防止在第一次頁面呈現時觸發滑動動畫。
現在,我注意到通過1.8的展示代碼看到有一個EffectQueue
類擴展了效果。這使我可以將多重效果添加到我的bean中的隊列中,並從getEffect
方法中返回隊列,然後我可以將該方法分配給panelGroup effect
屬性。但是,儘管設置了優先級,但它不會執行隊列中的事件。我確信我沒有正確使用它,我想知道它應該如何使用。
通常我會使用jQuery來處理這種類型的事情,但UI使用了很多部分提交。我們的頁面通過Liferay portlet顯示,所以任何partialSubmit視圖都會重新渲染,撤銷jQuery對DOM的任何修改。
那麼在IceFaces 1.8中有什麼簡單的方法來鏈接效果?建議?
謝謝,我給這個一杆。 我可以通過使用多個綁定到'ApplyEffectTag'的' '標籤並在標籤上設置'sequence'和'sequenceId'屬性來鏈接幾個。然後在我的bean中,我只是點擊鏈接時觸發'fired'標誌。但是,我們的表單使用了很多部分提交,所以效果在每次刷新後都會觸發。理想情況下,一旦顯示該部分,需要保持顯示狀態,直到用戶再次切換爲止。 我會試一試並回傳。 –
framauro13
2012-08-16 13:35:41
將此標記爲接受的答案,因爲它確實有效並回答了我的問題。 我遇到的問題是IceFaces不保留partialSubmits之間的對象的狀態。在Miha的例子中,想象一下按鈕切換'outputText'。點擊按鈕顯示它,然後點擊按鈕隱藏它。如果顯示文本,則另一個頁面控件執行部分提交,文本回到隱藏狀態;由效果對DOM所做的修改不會被保留。我認爲這是「暫時性」財產的目的,但似乎沒有效果。 謝謝! – framauro13 2012-08-16 15:09:46