使用primefaces设置JSF数据表的样式
如何使用CSS设置数据表的样式?我尝试了很多解决方案,但都不管用。我试过primefaces官方网站和primefaces用户指南中的一个,但它们都不起作用 以下是我的代码:使用primefaces设置JSF数据表的样式,jsf,primefaces,Jsf,Primefaces,如何使用CSS设置数据表的样式?我尝试了很多解决方案,但都不管用。我试过primefaces官方网站和primefaces用户指南中的一个,但它们都不起作用 以下是我的代码: <p:dataTable var="car" value="#{carListController.cars}"> <p:column filterBy=”#{car.model}”> <f:facet name="header"> <h:o
<p:dataTable var="car" value="#{carListController.cars}">
<p:column filterBy=”#{car.model}”>
<f:facet name="header">
<h:outputText value="Model" />
</f:facet>
<h:outputText value="#{car.model}" />
</p:column>
...more columns
</p:dataTable>
…更多专栏
如果有人能在这里帮助我,我将非常感激。我认为有很多方法可以用CSS给数据表着色。对我来说,它的工作原理是显示一个列表,其中每个项目都有一个ID,因此我使用:
<p:dataTable id="xyzDataTable" var="data" value="#{myBean.data}"
selectionMode="single" rowStyleClass="#{data.id mod 2 == 0 ? null : 'old'}">
现在,每一行都有不同的颜色。另一种解决方案:可以使用JavaScript。对于我的DataTable,我想给具有焦点的元素的列和行上色。DataTable包含许多inputText元素,如果获得焦点,每个元素都会调用该JavaScript函数:
<p:inputText id="xyz" ... onfocus="colorTR(#{data.id},1);" .../>
例如,可以在datatable中使用primefaces的rowStyleClass #{o.netWt le 1980?'existing':null} 在这里,这意味着我已经选择了datatable中的任何一列来检查它是否满足某些条件,如果不满足,我将显示现有的CSS类,否则为null。 其中存在一个CSS类,如 .现有{
背景色:#0E8C3A!重要; 背景图像:无!重要; 颜色:#E0EEEE!重要;
}我想你已经试着给你的组件分配一个类名并链接一个本地CSS表单了,对吗?这应该行得通 设置datatable的哪一部分的样式?@Cagatay Civici标题和行(更改行的颜色,例如:白色、蓝色、白色、蓝色…@Optimmus,您需要更具体地告诉我们您尝试过做什么。@Cagatay Civici首先我要感谢您的回复…@Cagatay Civici这是我尝试执行的代码:我用此代码添加了一个新的数据表,但过滤器输出区域没有显示:…更多我不理解的列此id=“xyzDataTable”data.idxyzDataTable是p:dataTable的一个简单的随机id,data.id是我的数据源的id列,因为我使用的数据源是有编号的,所以我只使用另一种背景颜色设置每个偶数(每秒一行)。@Optimmus,@Cagatay Civici可以比较两个日期,如
rowStyleClass=”#{bean.date1 lt currentDate?'red':'blue'}“
<p:inputText id="xyz" ... onfocus="colorTR(#{data.id},1);" .../>
//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';
}
}