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