我目前在使用 PrimeFaces 4.0 的 dataTable 中的列的呈现属性存在一个小问题。我的表中有一个不应该总是显示的列,所以我使用了它的渲染属性并从我的支持 bean 中获取值。这是第 6 列也是最后一列。数据表位于 ap:dialog 中,将在方法结束时显示。
渲染属性似乎可以正常工作,因为当 showColumn 为 false 时,该列将不会显示,反之亦然,但存在问题。如图所示,“未找到记录”。消息似乎直到最后一列才能到达。当我尝试删除呈现的属性或手动将其设置为 true(不使用支持 bean 值)时,“未找到记录”。消息将按预期到达最后一列。
包含这些元素的整个对话框/表单似乎在 ajax 请求之后正确更新。
支持 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>
如表所示: