“未找到记录”未考虑p:dataTable的有条件呈现的列

chi

我目前使用PrimeFaces 4.0在dataTable中的列的呈现属性存在一个小问题。我的表中有一列不应该总是显示的列,因此我使用了它的rendered属性,并从我的后备Bean中获取值。这是第六列也是最后一列。dataTable位于ap:dialog中,该方法将在方法末尾显示。

呈现的属性似乎正常工作,因为当showColumn为false时,将不会显示该列,反之亦然,但是存在一个问题。如图所示,“未找到记录”。直到最后一列似乎都无法找到该消息。当我尝试删除呈现的属性或将其手动设置为true(不使用后备bean值)时,“未找到记录”。消息将到达预期的最后一列。

在ajax请求之后,包含这些元素的整个对话框/表单似乎已正确更新。

Backing Bean方法:

public void getStatus(final MyClass foo, boolean showColumn) {

    updateForm(foo);
    setShowColumn(showColumn);

    RequestContext.getCurrentInstance().execute("dailyStatus.show();");
}

xhtml中的列部分:

<p:column headerText="Problematic Column" styleClass="tablecenter" rendered="#{myMBean.showColumn}">
    <p:commandLink id="view"
        action="#{myMBean.doSomething}" update="@form"
        rendered="#{obj.status.equals('FAILED')? 'true' : 'false'}"
        onclick="spin_start()" oncomplete="spin_stop()">
        <h:graphicImage name="images/restart.png" styleClass="icon" />
    </p:commandLink>
</p:column>

如表所示: 如页面上所示

chi

对于PrimeFaces 4.0,有一个“解决方案”,我使用jQuery解决了该问题。对于最新的PrimeFaces版本,此问题已修复。

当需要显示动态列时,我在后备Bean中使用标志,然后调用此方法。(问题中提到,数据表的列表应该为null或为空)

RequestContext.getCurrentInstance().execute("$('[id=\"myForm:myDataTable\"] tr.ui-widget-content td').attr('colspan', 6);");

这将强制在标题行之后的行上的单个td的colspan到达最后一个标题行。希望这对以后遇到此问题的其他人有所帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章