在jsp中将列表打印为表格
Print a list as a table in jsp
我有一个这样的列表:
[[A,0,1],[A,0,0],[B,0,1],[C,1,1],[C,0,1]]
,我想在HTML中打印它,像这样:
-------------
| A | 0 | 1 |
- - -----
| | | 0 |
-------------
| B | 0 | 1 |
-------------
| C | 1 | 1 |
- ---------
| | 0 | 1 |
-------------
是否有办法在javascript中做到这一点,或者有一个简单的方法在JSP中做到这一点?
Javascript:
来源:
var arr = [['A',0,1],['A',0,0],['B',0,1],['C',1,1],['C',0,1]];
计算每个单元格的合并深度:
var depth = arr.map(function(item){
return item.map(function(){
return 0;
});
});
var arrLength = arr.length;
for(var index=0;index<arrLength;index++){
var subArr = arr[index];
var subLength = subArr.length;
var tIndex;
var maxtIndex = arrLength;
if(index < arrLength -1) {
for(var i=0;i<subLength;i++){
tIndex = index + 1;
while(depth[index][i] != -1 && tIndex<maxtIndex){
if(subArr[i] == arr[tIndex][i]){
depth[index][i] = depth[index][i]+1;
depth[tIndex][i] = -1;
} else {
break;
}
tIndex++;
maxtIndex = tIndex;
}
if(depth[index][i] == 0){
break;
}
}
}
}
结果表:
var tableHtml = '<table>' + arr.map(function(subArr, index){
var str = '<tr>';
for(var i=0;i<subArr.length;i++){
var iDepth = depth[index][i];
if(iDepth !== -1) {
str += '<td' + (iDepth > 0?' rowspan="'
+ (iDepth + 1)+'"':'') + '>'
+subArr[i]
+ '</td>';
}
}
return str+'</tr>';
}).join(' ') + '</table>';
演示:JSFiddle
已更新它现在正在工作,但仍然不是你想要的
<script>
var a = [['A','0','1'],['A','0','0'],['B','0','1'],['C','1','1'],['C','0','1']]; //your array
var table = document.getElementById('your_table'); //a table to contain the res
for (i = 0; i< a.length; i++) { //loop for num of rows
var row = table.insertRow(i); //create the row and pt it in table
for (j = 0; j < 3; j++) { //loop 3 times for colums
var cell = row.insertCell(j); //create td tag
if (i == 0)
cell.innerHTML = a[i][j];
else {
if(a[i][j] != a[i-1][j]) { // if the value not equal to the one above
cell.innerHTML = a[i][j];
}
}
}
}
</script>
在JavaScript中你可以这样做
var numbers = [['A','0','1'],['A','0','0'],['B','0','1'],['C','1','1'],['C','0','1']];
var rows = "";
for(var i=0; i < numbers .length; i++){
rows = rows + "<tr>"
for(var j=0; j < 3; j++){
if(i != '0' && numbers[i][j]==numbers[i-1][j]){
rows = rows + "<td>"+"-"+"</td>"
}else{
rows = rows + "<td>"+numbers[i][j]+"</td>"
}
}
rows = rows + "</tr>"
}
var table ="<table>" + rows +"</table>"
//you can append it to DIV or any element in JSP
相关文章:
- 打印预览没有应用程序页眉和页脚的html表格
- 打印具有多页的表格时,再次创建页眉
- 如何使用 JQuQuery 解析 JSON 对象并在 HTML 页面中以表格格式打印输出
- HTML表格在打印后缺少边框颜色和背景颜色
- 我们如何在谷歌浏览器的每个页面上打印表格标题
- 打印html表格而不提示预览窗口
- 验证表单并打印到表格
- 通过 FireFox 打印带有 html 图表的表格
- 使用 php 从小费计算器打印表格
- 如何使用 JQuery 以表格形式打印通用 json 结果
- 根据用户选择的纸张大小打印适合大小的html表格
- 表格打印在第二页
- 从 html 页面打印表格
- 无法使用Javascript以html格式打印表格
- 无法使用JavaScript打印表格
- 如何在每个打印页上打印表格的末尾
- 如何使用javascript动态打印表格
- 如何使用Javascript在pdf上打印表格
- 打印表格提交
- 用vb和javascript打印表格