使用primefaces设置JSF数据表的样式

使用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

如何使用CSS设置数据表的样式?我尝试了很多解决方案,但都不管用。我试过primefaces官方网站和primefaces用户指南中的一个,但它们都不起作用

以下是我的代码:

<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';
      }
  }