如何将自定义CSS类分配给h:dataTable的任意行?

如何将自定义CSS类分配给h:dataTable的任意行?,css,jsf,datatable,Css,Jsf,Datatable,我正在尝试将特定的CSS类分配给我的的特定行。有什么方法可以访问和剪切生成的表行吗?将rowClasses属性绑定到一个bean属性,该属性返回所需的CSS类字符串 <h:dataTable value="#{bean.list}" rowClasses="#{bean.rowClasses}"> 更新为了澄清这一点,您可以通过编程方式完全控制行类字符串。请注意,以上只是一个开始示例,它不一定需要通过Item#getRowClass()等方式获得。您甚至可以使用计数器在一个简单的

我正在尝试将特定的CSS类分配给我的
的特定行。有什么方法可以访问和剪切生成的表行吗?

rowClasses
属性绑定到一个bean属性,该属性返回所需的CSS类字符串

<h:dataTable value="#{bean.list}" rowClasses="#{bean.rowClasses}">

更新为了澄清这一点,您可以通过编程方式完全控制
行类
字符串。请注意,以上只是一个开始示例,它不一定需要通过
Item#getRowClass()
等方式获得。您甚至可以使用计数器在一个简单的for循环中执行此操作

例如


我喜欢@BalusC的建议。如果需要第二种选择,可以使用javascript/JQuery轻松实现

使用JQuery,您可以这样做

(注意,这只是一个示例。我还没有测试过它,可能还有更好的方法)


谢谢你,BalusC,但我的意思是将一个特定的类分配给一个特定的行:例如,将CSS类“redRow”分配给第三行。RowClass允许我为所有行指定一个重复架构。只需让第三项在
getRowClass()
上返回
redRow
。或者使用计数器并在第三项上追加
redRow
。你明白给出答案的意义吗?只要
$('myTable tbody tr:eq(2)')。addClass('redRow')
也是可行的。
public String getRowClasses() {
    StringBuilder rowClasses = new StringBuilder();
    for (Item item : list) {
        if (rowClasses.length() > 0) rowClasses.append(",");
        rowClasses.append(item.getRowClass());
    }
    return rowClasses.toString();
}
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();
}
none,selected,selected,none,none,selected,none,none,none,none
$(document).ready(function(){
  var counter = 0;
  $('#myTable').each(function() {
      counter = counter + 1;
      if(counter==3) {
        $(this).addClass('redRow');
        return;
      }

  });
}