合并web表格中上下行显示相同内容的项
初始时数据显示为:
对“国家”项进行验证合并,并隔行显示不同颜色
代码实现:
<tr>
<%
int chooseColor=0; //控制相邻的不同“国家”项,输出的背景颜色不同
int contentSameNum=0; //控制列合并的数目,并控制其他项的输出位置
for (int i = 0; i < dataList.size(); i++) {
Map<?, ?> thisMap = (Map<?, ?>) dataList.get(i);
//合并“国家”单元格
if(contentSameNum==0){
chooseColor+=1;
for(int j=i;j<dataList.size();j++){
if(j!=(dataList.size()-1)){
if((dataList.get(j).get("国家")).equals(dataList.get(j+1).get("国家"))){
contentSameNum+=1;
}else{
%>
<td rowspan="<%=(contentSameNum+1)%>" bgcolor="<%=(chooseColor%2==0?"#ECF5FF":"#ffffff") %>">
<%=thisMap.get("国家") == null ? "": thisMap.get("国家")%></td>
<%
break;
}
}else{
%>
<td rowspan="<%=(contentSameNum+1)%>" bgcolor="<%=(chooseColor%2==0?"#ECF5FF":"#ffffff") %>">
<%=thisMap.get("国家") == null ? "": thisMap.get("国家")%></td>
<%
}
}
}else{
contentSameNum--;
}
<td align="left" bgcolor="<%=(chooseColor%2==0?"#ECF5FF":"#ffffff") %>">
<%=thisMap.get("数据2") == null ? "": thisMap.get("数据2")%></td>
<td align=center bgcolor="<%=(chooseColor%2==0?"#ECF5FF":"#ffffff") %>" >
<%=thisMap.get("数据3") == null ? "": thisMap.get("数据3")%></td>
</tr>
三目运算符
bgcolor="<%=(chooseColor%2==0?"#ECF5FF":"#ffffff") %>"
//当chooseColor为偶数时,返回:bgcolor="#ECF5FF";为奇数时,返回:bgcolor="#ffffff"