【问题标题】:Richfaces: a4j:commandLink with both onclick and actionListenerRichfaces:a4j:commandLink 与 onclick 和 actionListener
【发布时间】:2012-05-24 05:55:18
【问题描述】:

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

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

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

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

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

谢谢, 约翰

更新:

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

【问题讨论】:

  • 只用丰富的面孔 3.3 试试吧,因为我在 4.1.0 最终版也有类似的问题,它在 3.3.3 上运行良好
  • 恐怕降级不是一种选择。但是感谢您为 Richfaces 错误理论增添动力。
  • switchToItem 中的 oncomplete 究竟是如何失败的?它是否会像“它从不切换”那样失败,或者像“它会切换,但它仍然显示旧内容”那样失败。
  • 嗨 BalusC。使用 onclick,它切换到另一个选项卡,但 setPropertyActionListener 永远不会触发。如果我使用 oncomplete,监听器会触发,但我必须手动切换到另一个选项卡。如果我添加“alert('here');”在 oncomplete 上的 switchToItem 代码之前,我什至没有收到警报。
  • ...(哎呀)...我确实收到了警报,但 switchToItem 不起作用。

标签: jsf-2 richfaces


【解决方案1】:

好的,

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

它有效,但我仍然想听听更好的方法。

【讨论】:

    【解决方案2】:

    我使用 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>
    

    问候, 帕洛

    【讨论】:

      猜你喜欢
      • 2012-04-23
      • 2014-12-26
      • 1970-01-01
      • 2014-04-26
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 2011-01-29
      相关资源
      最近更新 更多