gpt4 book ai didi

css - 样式化 jsf 数据表中的最后一条记录

转载 作者:技术小花猫 更新时间:2023-10-29 11:42:55 25 4
gpt4 key购买 nike

我遇到这样一种情况,我的数据多于返回到 dataTable 元素的单行中所能容纳的数据。为了解决这个问题,我只是将结果合并到一个单元格中。我正在寻找一种方法来确定我是否已到达结果集中的最后一个对象,以便我可以删除用作分隔符的底部边框。最终我不知道要处理多少对象。

.most {
background-color:cyan;
border-bottom:medium solid black;
}
.last {
border-bottom:none;
}

<h:dataTable id="myTable" value="#{flowData.selectedItem.profile}" var="profile" columnClasses="most, last">
<h:column>
<h:inputText id="_last" value="#{profile.last}" />
<h:inputText id="_first" value="#{profile.first}" />
<h:inputText id="_middle" value="#{profile.middle}" />
<h:inputText id="_city" value="#{profile.city}" />
<h:inputText id="_state" value="#{profile.state}" />
</h:column>
</h:dataTable>

在此先感谢您的任何意见。

最佳答案

这取决于您希望支持的 IE 浏览器版本。

如果您不关心 IE6/7 支持,那么您可以为此使用 CSS2 :last-child 伪类。

table.yourTableClass tbody tr td {
background-color: cyan;
border-bottom: medium solid black;
}
table.yourTableClass tbody tr:last-child td {
border-bottom: none;
}

<h:dataTable ... styleClass="yourTableClass">

(是的,IE7 支持对应的 CSS2 伪类 :first-child,但它确实支持 :last-child!)

如果你关心 IE7,但不关心 IE6,那么你也可以反过来,使用 border-top 而不是 border-bottom:first-child:

上设置为 none
table.yourTableClass tbody tr td {
background-color: cyan;
border-top: medium solid black;
}
table.yourTableClass tbody tr:first-child td {
border-top: none;
}

如果您还关心 IE6(现在是 discutable),那么您不能在托管 bean 中自行生成行类字符串(不是列类!)。

<h:dataTable ... rowClasses="#{flowData.rowClasses}">

public String getRowClasses() {
StringBuilder builder = new StringBuilder();
int size = selectedItem.getProfile().size(); // getProfiles() ?

for (int i = 0; i < size; i++) {
builder.append((i + 1 < size) ? "most," : "last");
}

return builder.toString();
}

和这个 CSS

tr.more td {
background-color: cyan;
border-bottom: medium solid black;
}
tr.last td {
border-bottom: none;
}

关于css - 样式化 jsf 数据表中的最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9167429/

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