蛙蛙请教:动态拼接表格问题的解决
2005-04-22 14:59
337 查看
蛙蛙请教:动态拼接表格问题的解决
问题是这样的,我想从数据库取出记录后输出以下形式的表格,就是每4个记录集生成一个table,在每个table里分两行两列显示每个recordset,怎么动态生成呀?注意表格里有个ID的属性要从0开始递增
<table border=1 id=0><tr><td>rs(0)</td>
<td>rs(0)</td></tr><tr>
<td>rs(0)</td>
<td>rs(0)</td></tr></table>
<table border=1 id=1><tr><td>rs(0)</td>
<td>rs(0)</td></tr><tr>
<td>rs(0)</td>
<td>rs(0)</td></tr></table>
我们平时输出的记录集都是一行一个记录,偶尔也有分栏显示的,一行显示N个记录的,单这次还得在这个基础上每4个封闭一个表格,你还得保证生成的表格不能只有开标签没有闭标签的情况.
把问题转换一下
用1到某个数之间的数字生成一下表格,用js的document.write方法也行
其实说白了,这是一个算法问题
<table border=1 id=0><tr><td>1</td>
<td>2</td></tr><tr>
<td>3</td>
<td>4</td></tr></table>
<table border=1 id=1><tr><td>5</td>
<td>6</td></tr><tr>
<td>7</td>
<td>8</td></tr></table>
......以下省略,我想大家一定看出规律来了吧,还得考虑如果终止数不能被4整除的情况下还得保证生成的HTML标签的正确性,不能缺半拉,也不能显示不好,必要的时候还得考虑一个表格里上面一行显示2数字,而下面一行显示1个数字的情况,这样下面那个单元格必须跨两个单元格,比如说7的时候
问题解决,写了一上午才写出下面的算法
<SCRIPT LANGUAGE="JavaScript">
<!--
var j,max,str;
max = 100;
str="";
j=0;
for(var i = 1;i <= max;i++){
if(i % 4 == 1){
str += ("<table border=1 id=" + (j++) + "><tr><td>" + i + "</td>");
if(i == max) str += ("</tr></table>");
}
if(i % 4 == 2){
str += ("<td>" + i + "</td>");
if(i == max){
str += ("</tr></table>");
}else{
str += ("</tr><tr>");
}
}
if(i % 4 == 3){
str +=("<td")
if(i == max) str +=(" colspan=2")
str +=(">" + i + "</td>");
}
if(i % 4 == 0) str +=("<td>" + i + "</td></tr></table>");
}
//document.write(str);
//alert(str);
//-->
</SCRIPT>
<SCRIPT LANGUAGE="vbScript">
<!--
dim j,max,str
max=8
j=0
str=""
dim i
for i=0 to max
if (i mod 4 = 1) then
str = str & "<table border=1 id=" & j & "><tr><td>" & i & "</td>"
if (i = max) then str = str & "</tr></table>"
j = j+1
end if
if(i mod 4 = 2) then
str = str & "<td>" & i & "</td>"
if(i = max)then
str = str & "</tr></table>"
else
str = str & "</tr><tr>"
end if
end if
if(i mod 4 = 3) then
str = str & "<td"
if(i = max) then str = str & " colspan=2"
str = str &">" & i &"</td>"
end if
if(i mod 4 = 0 and i<>0) then str = str& "<td>" & i & "</td></tr></table>"
next
document.write(str)
'msgbox(str)
//-->
</SCRIPT>
问题是这样的,我想从数据库取出记录后输出以下形式的表格,就是每4个记录集生成一个table,在每个table里分两行两列显示每个recordset,怎么动态生成呀?注意表格里有个ID的属性要从0开始递增
<table border=1 id=0><tr><td>rs(0)</td>
<td>rs(0)</td></tr><tr>
<td>rs(0)</td>
<td>rs(0)</td></tr></table>
<table border=1 id=1><tr><td>rs(0)</td>
<td>rs(0)</td></tr><tr>
<td>rs(0)</td>
<td>rs(0)</td></tr></table>
我们平时输出的记录集都是一行一个记录,偶尔也有分栏显示的,一行显示N个记录的,单这次还得在这个基础上每4个封闭一个表格,你还得保证生成的表格不能只有开标签没有闭标签的情况.
把问题转换一下
用1到某个数之间的数字生成一下表格,用js的document.write方法也行
其实说白了,这是一个算法问题
<table border=1 id=0><tr><td>1</td>
<td>2</td></tr><tr>
<td>3</td>
<td>4</td></tr></table>
<table border=1 id=1><tr><td>5</td>
<td>6</td></tr><tr>
<td>7</td>
<td>8</td></tr></table>
......以下省略,我想大家一定看出规律来了吧,还得考虑如果终止数不能被4整除的情况下还得保证生成的HTML标签的正确性,不能缺半拉,也不能显示不好,必要的时候还得考虑一个表格里上面一行显示2数字,而下面一行显示1个数字的情况,这样下面那个单元格必须跨两个单元格,比如说7的时候
问题解决,写了一上午才写出下面的算法
<SCRIPT LANGUAGE="JavaScript">
<!--
var j,max,str;
max = 100;
str="";
j=0;
for(var i = 1;i <= max;i++){
if(i % 4 == 1){
str += ("<table border=1 id=" + (j++) + "><tr><td>" + i + "</td>");
if(i == max) str += ("</tr></table>");
}
if(i % 4 == 2){
str += ("<td>" + i + "</td>");
if(i == max){
str += ("</tr></table>");
}else{
str += ("</tr><tr>");
}
}
if(i % 4 == 3){
str +=("<td")
if(i == max) str +=(" colspan=2")
str +=(">" + i + "</td>");
}
if(i % 4 == 0) str +=("<td>" + i + "</td></tr></table>");
}
//document.write(str);
//alert(str);
//-->
</SCRIPT>
<SCRIPT LANGUAGE="vbScript">
<!--
dim j,max,str
max=8
j=0
str=""
dim i
for i=0 to max
if (i mod 4 = 1) then
str = str & "<table border=1 id=" & j & "><tr><td>" & i & "</td>"
if (i = max) then str = str & "</tr></table>"
j = j+1
end if
if(i mod 4 = 2) then
str = str & "<td>" & i & "</td>"
if(i = max)then
str = str & "</tr></table>"
else
str = str & "</tr><tr>"
end if
end if
if(i mod 4 = 3) then
str = str & "<td"
if(i = max) then str = str & " colspan=2"
str = str &">" & i &"</td>"
end if
if(i mod 4 = 0 and i<>0) then str = str& "<td>" & i & "</td></tr></table>"
next
document.write(str)
'msgbox(str)
//-->
</SCRIPT>
相关文章推荐
- 使用Rocker模板引擎解决动态拼接SQL语句的问题
- 蛙蛙请教:偶在CSDN发的好多问题都没有解决呢,我集中了一下,大家给看看
- QListWidget动态刷新的问题和解决 #Qt Creator
- Android动态添加View的问题解决方法
- 用户控件动态加载图片问题解决方法!
- kindeditor从word粘贴表格不显示边框,kingeditor文字图片混排溢出——问题已解决
- 关于NGUI的动态加载后的刷新显示问题,解决办法!!
- 单行查询返回多行记录问题解决---拼接多行查询结果
- 解决jQuery 1.2.6无法动态创建dialog问题
- 使用jquery的load方法设计动态加载,并解决浏览器前进、后退、刷新等问题
- 仿MFC实现c++按名动态创建对象之续(瘦身以及解决其在dll中使用的问题)
- 动态规划解决0-1背包问题
- 【解决】hive动态增加partitions不能超过100的问题
- CxGrid表格中文排序错误问题解决方法
- TIUDPClient使用过程中出了一个问题,请教一下怎么解决
- 遇到动态调用Parameters .AddWithValue()参数类型问题的解决方法
- 解决extjs4.0 grid不能编辑表格问题
- 解决表格中英文字符过多出现将边框撑大弄乱布局的问题
- ExtJS4.1.1 表格删除某行后行号不连续问题解决办法
- 解决Web页面表格线打印问题