gpt4 book ai didi

jsf - 有条件地呈现列时,列标题不可见

转载 作者:行者123 更新时间:2023-12-04 19:45:45 25 4
gpt4 key购买 nike

我有一个 h:dataTable .我想按如下方式有条件地呈现一行:

<h:dataTable value="#{myController.entities}" var="entity">
<h:column rendered="#{entity.selected}">
<f:facet name="header">
<h:outputText value="header" />
</f:facet>
<h:outputText value="#{entity.name}" />
</h:column>
</h:dataTable>

在我的 Controller 中有变量 List <Entity>具有 getter 和 setter 的实体。

Entity类包含两个变量:boolean selectedString name及其 getter 和 setter。

#{entity.selected}为假,则该行被隐藏。当#{entity.selected}为真,则显示该行,但没有标题。当我不在列上使用 rendered 属性时,我的标题变得可见。

这个问题类似于p:column header facet is not shown when rendered attribute is used on p:column

但是给出的解决方案都不适合我,我也没有使用 primefaces。

有人可以帮我解决这个问题吗?我是 JSF 的新手,这个错误可能很愚蠢并且很容易修复,但请帮我弄清楚。谢谢。

我正在发布我尝试上述代码时得到的输出。

**Header**

name 0

name 1

name 2

name 3

name 4

此输出仅使用 <h:column> 显示数据表没有试图有条件地渲染它。可以看到表头。

现在当我使用条件渲染时:

name 1

name 3

在此输出中,我尝试使用条件渲染 <h:column rendered="#{entity.selected}"> .如您所见,对于“名称 0”、“名称 3”和“名称 5”,#{entity.selected}是假的,因此它不呈现。这正是我所需要的,但前提是出现标题。

我想让我的#{entity.selected}的位置不可见值为假。同时显示列标题。这可能吗?

最佳答案

你需要把rendered 单元格条件,而不是条件。

<h:dataTable value="#{myController.entities}" var="entity">
<h:column>
<f:facet name="header">
<h:outputText value="header" />
</f:facet>
<h:outputText value="#{entity.name}" rendered="#{entity.selected}" />
</h:column>
</h:dataTable>

或者,如果您有多个组件或表示单元格内容的纯文本,请将其包装在 <h:panelGroup> 中或 <ui:fragment> .

<h:dataTable value="#{myController.entities}" var="entity">
<h:column>
<f:facet name="header">
header
</f:facet>
<h:panelGroup rendered="#{entity.selected}">
Blah blah #{entity.name} blah blah
</h:panelGroup>
</h:column>
</h:dataTable>

(注意:您不一定在所有地方都需要 h:outputText,另请参阅 Is it suggested to use h:outputText for everything?)

如有必要,请在表格上应用以下 CSS 以隐藏空单元格,以防您应用了例如表格单元格上的边框或 bgcolors:

table {
empty-cells: hide;
}

一个完全不同的替代方案是提供一个新模型,它包含所需的实体:

<h:dataTable value="#{myController.selectedEntities}" var="entity">
<h:column>
<f:facet name="header">
header
</f:facet>
#{entity.name}
</h:column>
</h:dataTable>

关于jsf - 有条件地呈现列时,列标题不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25507117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com