2012-05-16 66 views
0

我正在使用Richfaces 4.1.0.Final。 我有一個類似於this post的問題,但補救措施(返回true;)不適用於我。 它可能是我使用的Richfaces版本,但升級對我來說非常困難,我想先驗證這是問題還是最好找到解決方法。Richfaces:a4j:帶有onclick和actionListener的commandLink

我在rich:tabPanel內的rich:tab中的rich:dataTable中的rich:列中有一個a4j:commandLink鏈接。我想點擊鏈接,將列數據保存到後臺bean(例如,通過f:setPropertyActionListener),然後讓用戶切換到另一個標籤進行編輯(使用:#{rich:component('TabPanel')} .switchToItem('EditTab');)

如果我使用oncomplete爲JavaScript片段,處理程序觸發,但switchToItem片不起作用。如果我使用onclick作爲javascript部分,處理程序不會觸發,但switchToItem部分確實有效。我需要兩個。

有誰知道解決方案嗎?這是這個版本的Richfaces中的已知問題嗎?有誰知道我可以使用其他組件解決這個問題?

提前道歉,但我無法發佈我的代碼。

感謝, 約翰

更新:

我升級到RichFaces的4.2.2.Final,但沒有改善。顯然,如果您還使用oncomplete切換到另一個選項卡,則不可能將a4j:commandLink與f:setPropertyActiopnListener一起使用。

+0

只是具有豐富的面孔3.3嘗試它,因爲我想類似的問題與4.1.0最終和它工作正常與3.3.3 – Mango

+0

恐怕降級不是一個選項。不過感謝Richfaces bug理論的加入。 – John

+0

'oncomplete'中的switchToItem究竟如何失敗?它是否會像「從不切換」一樣失敗,或者如「切換,但仍顯示舊內容」那樣失敗。 – BalusC

回答

0

好吧,

我添加了第二個F:setPropertyActionListener到的TabPanel的activeItem設置爲EditTab。然後我添加oncomplete =「location.reload(true);」刷新所有內容並使用正確的活動選項卡重新繪製。

它的工作原理,但我仍然想聽聽更好的方法。

0

我RichFaces的4.2.2.Final嘗試它和它的工作對我來說,當我用的onclick:

<rich:dataTable value="#{model.simple}" var="item"> 
    <rich:column> 
     <a4j:commandButton value="click me" onclick="#{rich:component('tabPanel')}.switchToItem('tab3');" action="#{bean.action}"> 
      <a4j:param assignTo="#{bean.parameter}" name="param" value="#{item}"/> 
     </a4j:commandButton> 
    </rich:column> 
</rich:dataTable> 

<rich:tabPanel id="tabPanel"> 
    <rich:tab name="tab1">tab 1 content</rich:tab> 
    <rich:tab name="tab2">tab 2 content</rich:tab> 
    <rich:tab name="tab3">tab 3 content</rich:tab> 
</rich:tabPanel> 

問候, 帕羅奧