【问题标题】:Primefaces RowToggle - How to differentiate between Row Expansion and Row Collapse?Primefaces RowToggle - 如何区分行扩展和行折叠?
【发布时间】:2014-05-25 14:03:35
【问题描述】:

我正在使用 Prmefaces 3.5。我在数据表中使用 RowToggler。每当单击 RowToggle 按钮时,我都会执行一些数据库访问操作并显示一个带有访问数据的网格。

每当单击切换按钮时,都会调用下面的监听器,在其中完成操作

<p:ajax event="rowToggle" listener="#{controller.onRowToggle}" 

但问题在于调用这个方法。不仅行展开时调用此方法,行折叠时也调用此方法。折叠行时不需要执行数据库操作,因此这是一项昂贵的操作。

请建议如何知道该行是展开还是折叠,以便我可以有条件地进行操作?

【问题讨论】:

    标签: javascript jquery jsf primefaces


    【解决方案1】:

    您是否尝试过在侦听器中使用 ToggleEvent#getVisibility() 方法?示例如下:

    public void onRowToggle(ToggleEvent event) {
        if (event.getVisibility() == Visibility.VISIBLE) {
            // your code here
        }
    }
    

    【讨论】:

      【解决方案2】:

      如果你想让 RT 在行被扩展的情况下,这将起作用:

      <p:ajax
          event="rowToggle"                                            
          onstart="return cfg.ext.params[0].name.indexOf('_rowExpansion') != -1"
          listener="#{fooViewModel.onRowToggle}"
      />
      

      【讨论】:

      • 这就像一个魅力!我在 rowExpansion 中的 selectOneMenu 的内容已被重置,这就是解决方案。谢谢!
      • 出色的解决方案。客户端
      • 我知道上一条评论是 10 个月前,但如果你从任何 onstart 返回 false,ajax 调用将不会发生
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 2016-02-02
      • 2015-03-29
      • 1970-01-01
      • 2014-06-30
      相关资源
      最近更新 更多