2012-05-16 65 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> 

问候, 帕罗奥