另一种解决方案:您可以使用JavaScript。对于我的DataTable,我想要着色列和焦点元素的行。 DataTable中包含了许多的inputText元素,如果它得到他们每个人的调用JavaScript函数的焦点:
<p:inputText id="xyz" ... onfocus="colorTR(#{data.id},1);" .../>
与JavaScript函数:
//colors row
function colorTR(row, cell){
var x = document.getElementsByTagName('tr');
var count = x.length;
for(var i=0; i!=count; ++i){
if(x[i].id[0] == 'p'){
if(i%2 == 0)
x[i].style.background = '#eeeeee';
else
x[i].style.background = '#fafafa';
var zahl = parseInt(x[i].id[x[i].id.length-2] + x[i].id[x[i].id.length-1]);
if(isNaN(zahl))
zahl = parseInt(x[i].id[x[i].id.length-1]);
if(zahl == row)
x[i].style.background = '#feac5b';
}
}
//colors column
x = document.getElementsByTagName('input');
count = x.length;
for(var i=0; i!=count; ++i){
if(x[i].id[0] == 'p'){
x[i].parentNode.style.background = 'transparent';
var zahl = parseInt(x[i].id[x[i].id.length-2] + x[i].id[x[i].id.length-1]);
if(isNaN(zahl))
zahl = parseInt(x[i].id[x[i].id.length-1]);
if(zahl == cell)
x[i].parentNode.style.background = '#feac5b';
}
}
//header column
x = document.getElementsByTagName('th');
count = x.length;
for(var i=0; i!=count; ++i){
if(x[i].id[0] == 'p'){
x[i].style.background = '#ffffff';
var zahl = parseInt(x[i].id[x[i].id.length-2] + x[i].id[x[i].id.length-1]);
if(isNaN(zahl))
zahl = parseInt(x[i].id[x[i].id.length-1]);
if(i == cell)
x[i].style.background = '#feac5b';
}
}
样式datatable的哪一部分? – 2011-05-18 10:09:56
@Cagatay Civici标题和行(改变行的颜色,例如:白色,蓝色,白色,蓝色......) – Optimmus 2011-05-18 11:03:48
@Optimmus,你需要更具体一些,告诉我们你试图去做什么。 – 2011-05-18 11:05:31