Richfaces:a4j:带有onclick和actionListener的commandLink

时间:2012-05-16 16:10:34

标签: jsf-2 richfaces

我正在使用Richfaces 4.1.0.Final。 我有类似于this post的问题,但是补救措施(return true;)对我不起作用。 它可能是我正在使用的Richfaces的版本,但升级对我来说非常困难,我想首先验证问题,或者最好找到解决方法。

我在rich:tabPanel中的rich:tab中的rich:dataTable中的rich:列中有一个a4j:commandLink链接。我想点击链接,将列数据保存到支持bean(例如通过f:setPropertyActionListener),然后让用户切换到另一个选项卡进行编辑(使用:#{rich:component('TabPanel')} .switchToItem( 'EditTab');)

如果我对javascript片段使用oncomplete,则会触发处理程序,但switchToItem片段不起作用。如果我改为使用onclick来获取javascript片段,则处理程序不会触发,但switchToItem片段确实有效。我需要两个。

有谁知道解决方案?这是Richfaces版本中的一个已知问题吗?有谁知道如何使用其他组件解决这个问题?

我提前道歉,但我无法发布我的代码。

谢谢, 约翰

更新

我升级到Richfaces 4.2.2.Final,但没有任何改进。显然,如果你还使用oncomplete to switchToItem另一个选项卡,则不可能将a4j:commandLink与f:setPropertyActiopnListener一起使用。

2 个答案:

答案 0 :(得分:0)

确定,

我添加了第二个f:setPropertyActionListener来将TabPanel的activeItem设置为EditTab。然后我添加了oncomplete =“location.reload(true);”刷新所有内容并使用正确的活动选项卡重绘。

它有效,但我仍然希望听到更好的方法。

答案 1 :(得分: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>

此致 帕洛阿