【问题标题】:Datatable row expansion event数据表行扩展事件
【发布时间】:2011-10-07 10:40:37
【问题描述】:

我将 Primefaces 3.0 与 JSF 2.0 一起使用。我有一个启用扩展的数据表。当用户单击 rowToggler 时,我想调用一个 bean 方法。基本上,我只想在用户单击展开按钮时才加载展开详细信息。我在文档中看不到用于行扩展的服务器端回调。请让我知道是否可以解决此问题。

感谢和问候, 连珠

【问题讨论】:

标签: jsf datatable primefaces expansion


【解决方案1】:

按照问题评论中霍华德提供的链接,我可以看到这是在 PF 3.4 中实现的:

XHTML

<p:ajax event="rowToggle" listener="#{tableBean.onRowToggle}" update=":form:growl" />

public void onRowToggle(ToggleEvent event) {
    FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO,
                                        "Row State " + event.getVisibility(),
                                        "Model:" + ((Car) event.getData()).getModel());

    FacesContext.getCurrentInstance().addMessage(null, msg);
}

您可以在展示中看到: https://www.primefaces.org/showcase/ui/data/datatable/expansion.xhtml

【讨论】:

  • 我正在使用这种方法,它工作正常,直到用户过滤数据表。然后 event.getData() 返回无效数据(在您的情况下为 new Car() 对象)。任何想法为什么会发生这种情况?谢谢。
  • 有点晚了,但我遇到了同样的问题,就我而言,解决方案是将filteredValue 属性添加到数据表中。
【解决方案2】:

Primefaces 的 rowToggler 已经使用 ajax 加载内容,所以你应该没问题 ;-)

来自手册:

p:rowToggler 组件放置一个展开/折叠图标,单击折叠的行会使用 ajax 加载展开的内容。

【讨论】:

    猜你喜欢
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多