我正在尝试将特定的CSS类分配给我的特定行<h:dataTable>.有没有办法访问和cutomize结果表行?
将rowClasses属性绑定到bean属性,该属性返回所需的CSS类字符串.
<h:dataTable value="#{bean.list}" rowClasses="#{bean.rowClasses}">
Run Code Online (Sandbox Code Playgroud)
用例如
public String getRowClasses() {
StringBuilder rowClasses = new StringBuilder();
for (Item item : list) {
if (rowClasses.length() > 0) rowClasses.append(",");
rowClasses.append(item.getRowClass());
}
return rowClasses.toString();
}
Run Code Online (Sandbox Code Playgroud)
更新以澄清,这样您就可以对rowClasses字符串进行完全的编程控制.注意,上面只是一个启动示例,它不一定需要通过Item#getRowClass()左右获得.您甚至可以使用计数器进行简单的for循环.
例如
public String getRowClasses() {
StringBuilder rowClasses = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
if (rowClasses.length() > 0) rowClasses.append(",");
rowClasses.append(selected.contains(i) ? "selected" : "none");
}
return rowClasses.toString();
}
Run Code Online (Sandbox Code Playgroud)
这里selected是一个List<Integer>.如果它包含1,2和5,则返回的字符串将如下所示,以获取10个项目的列表:
none,selected,selected,none,none,selected,none,none,none,none
Run Code Online (Sandbox Code Playgroud)