2012-09-26 17 views
1

我想强调由标签的排它具有价值'Total'为了这个,我是通过JavaScript的努力,但我uable做到这一点。下面是我using.Please导的片段。如何突出DisplayTag表的特定行?

编号:How to decorate a row in table using displaytag

我收到警报时,有第2列共但是它没有得到强调。

如何突出其在第2列值Total特定行?

<script type="text/javascript"> 
     function onLoad(){ 
      var table = document.getElementById("data");  
      var tbody = table.getElementsByTagName("tbody")[0]; 
      var rows = tbody.getElementsByTagName("tr"); 

      for (i=0; i < rows.length; i++) { 
       var value = rows[i].getElementsByTagName("td")[1].firstChild.nodeValue; 

       if (value == 'Total') { 
        alert('true'); 
        rows[i].style.backgroundColor = "red"; 

          } 
      } 
     } 

     </script> 
    <body onload="onLoad();"> 
    <%AppUtil oAppUtil=new AppUtil();%> 
    <jsp:useBean id="realTimeIssuance" scope="session" class="com.mindcraft.mis.tpd.actionform.afRealTimeIssuance"></jsp:useBean> 

    <display:table name="realtimereportcol" export="true" pagesize="30" sort="list" id="data" requestURI="" class="tablelist" decorator="org.displaytag.decorator.TotalTableDecorator"> 


      <display:column title="SUB_CHANNEL" sortable="true" property="sub_channel"></display:column> 
      <display:column title="AGENT_NAMES" sortable="true" property="agent_names"></display:column> 
      <display:column title="FTD" sortable="true" property="ftd" ></display:column> 
      <display:column title="MTD" sortable="true" property="mtd" ></display:column> 
      <display:column title="QTD" sortable="true" property="qtd" ></display:column> 

    </display:table> 
    </body> 
    </html> 

回答

0

AFAIK,您不能在<tr>上设置背景颜色。相反,您必须在每个封闭的<td>上设置它。

我会定义一个CSS类像

tr.highlighted td { 
    background-color: red; 
} 

和类highlighted添加到相应的<tr>

1

你必须使用DisplayTag装饰操纵所呈现的表的数据和HTML结构中的演示。

创建一个简单的Java类,你的项目包,它扩展TableDecorator和覆盖addRowClass方法内。

在类对象的集合上,将为集合中的每个对象调用装饰器类方法addRowClass

public class TestTableDecorator extends TableDecorator { 

    @Override 
    public String addRowClass() { 
     return ((AnObject) getCurrentRowObject()).getTotal() > your_threshold ? "css-class-1" : "css-class-2"; 
    } 

} 
在.jsp文件

,现在我宣布你的装饰显示器内部:使用属性表:

decorator="path.to.decorator.TestTableDecorator" 

希望有所帮助。