【问题标题】:f:ajax render getting executed after the onClick event get called [duplicate]f:ajax 渲染在 onClick 事件被调用后执行 [重复]
【发布时间】:2016-02-22 16:18:25
【问题描述】:

我想在命令链接面板上打开一个弹出窗口,但它不会打开弹出窗口,而是在之后呈现它。

<h:commandLink onclick="{#{rich:component('viewPopupPanel')}.show();}" value="View">
    <f:ajax execute="dat1" render=":viewForm:viewPopupPanel" listener="#{listingBean.viewAction(data)}"/>
</h:commandLink> 

在我的支持 bean 中,我正在设置通过函数传递的数据,但由于在调用 onCLick 事件后调用了渲染,我想在 ajax 请求完成后委托 on Click 事件。 如何实现?

【问题讨论】:

    标签: ajax jsf jsf-2


    【解决方案1】:

    您可以在 f:ajax 标签中使用 onevent 属性,如下所示

    <h:commandLink value="View">
      <f:ajax execute="dat1" render=":viewForm:viewPopupPanel" listener="#{listingBean.viewAction(data)}" onevent="showPopup"/>
    </h:commandLink>
    

    并定义showPopup java脚本函数如下:

    <script>
    function showPopup(data){
      if (data.status == "success") {
        #{rich:component('viewPopupPanel')}.show();
        }
    }
    </script>
    

    【讨论】:

      猜你喜欢
      • 2012-01-25
      • 2012-12-26
      • 2011-09-07
      • 2018-06-24
      • 2018-07-02
      • 2012-10-30
      • 2019-09-01
      • 1970-01-01
      相关资源
      最近更新 更多