我正在尝试将特定的CSS类分配给我的< h:dataTable>的特定行.有没有办法访问和cutomize结果表行?
解决方法
将rowClasses属性绑定到bean属性,该属性返回所需的CSS类字符串.
<h:dataTable value="#{bean.list}" rowClasses="#{bean.rowClasses}">
与…
public String getRowClasses() { StringBuilder rowClasses = new StringBuilder(); for (Item item : list) { if (rowClasses.length() > 0) rowClasses.append(","); rowClasses.append(item.getRowClass()); } return rowClasses.toString(); }
更新以澄清,这样您就可以对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(); }
其中selected是List< Integer>.如果它包含1,2和5,则返回的字符串将如下所示,以获取10个项目的列表:
none,selected,none,none