当前位置: 首页 > 图文教程 > 网络编程 > ASP > 我用ASP写的m行n列的函数,动态输出创建TABLE行列

ASP
分享一段代码show.asp?id=26变成show/?26的形式
多域名一网站时如果返回最原来的域名
[原创]完美解决ASP 不能更新。数据库或对象为只读。
5天学会asp
TSYS中生成静态页时溢出: ''CInt''
对象标记具有无效的 ''MSWC.MyInfo'' ProgID
[原创]随机增加网站点击的一个不错的方法
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
反SPAM新思路—换Z-BLOG的验证码!
七步倒┈→专用asp后门
asp下实现代码的“运行代码”“复制代码”“保存代码”功能源码
使用ASP实现网站的“目录树”管理的代码
ShowPage 显示“上一页 下一页”等信息的封装代码
[原创]站长感慨asp编程究竟何去何从
响应对象 错误 ''ASP 0185 : 80020003'' 缺少默认属性
[原创]asp下用实现模板加载的的几种方法总结
[原创]asp获取URL参数的几种方法分析总结
Access数据库中“所有记录中均未找到搜索关键字”的解决方法
ASP程序中输出Excel文件实例一则
ASP应用中如何限制同一表单被多次提交

我用ASP写的m行n列的函数,动态输出创建TABLE行列


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 135 ::
收藏到网摘: n/a

没有用正常的循环tr内循环td的方法,所以就没有计算最后一页的记录集数量。
但当记录集不足时也同样能够自动补空行空列,如有不足请指出,谢谢。
使用方法很简单:
复制代码 代码如下:

<%
showData("查询语名")
Call pagehead(行数,列数)
'-------------------------------------------------------------------------------
'可以把下面的Response.Write()写到函数里面,看个人的爱好了。
Response.Write(FormatCRtable(表格宽度,表格高度))
Response.Write(PageFoot())
Call closeData()
%>

函数如下:

复制代码 代码如下:

<%
'-------------------------------------------------------------------------------
'Copyright 2005 by Jorkin.All Rights Reserved
'-------------------------------------------------------------------------------
Public rs
Public pageno,Cols,Rows,maxpageno,maxredcount,maxpagesize
'-------------------------------------------------------------------------------
Public Function showData(sqlstrings)
  Set rs=Server.CreateObject("ADODB.Recordset")
  rs.open sqlstrings,oconn,1,3
End Function
Public Function closeData()
  rs.close
  Set rs=Nothing
End Function
'初始化分页
'MaxRows =最大行数
'MaxCols =最大列数
'-------------------------------------------------------------------------------
Public Function PageHead(MaxRows,MaxCols)
'-------------------------------------------------------------------------------
  Rows=MaxRows
  Cols=MaxCols
  maxpagesize=1
  maxredcount=0
  maxpageno=0
  pageno=0
'-------------------------------------------------------------------------------
  maxredcount = rs.recordcount
  If maxredcount>0 then
  maxpagesize = Rows*Cols
  maxpageno = Cint((maxredcount+maxpagesize-1)/maxpagesize)
  rs.pagesize = maxpagesize
  pageno=Request("pageno")
  If IsEmpty(pageno) Or Not IsNumeric(pageno) Or CInt(pageno)<1 Or CInt(pageno)>Rs.Pagecount Then
   Pageno=1
  End If
  rs.absolutePage=pageno
  End If
  On Error Resume Next
End Function
'分页函数尾
'无参数
'-------------------------------------------------------------------------------
Public Function PageFoot()
  strr="<table width=""500"" border=""0"" cellpadding=""0"" cellspacing=""0"">" & VbCrLf
  strr=strr&" <tr>" & VbCrLf
  strr=strr&" <td valign=""top""><div align=""Right"">"
'大于1页才会显示首页和上一页(可选)
' If pageno>1 Then
   strr=strr&"<a href=""?pageno=1"" title=""首页""><font face = Webdings>9</font></a>"
   strr=strr&" "
   strr=strr&"<a href=""?pageno="&pageno-1&""" title=""上一页""><font face = Webdings>7</font></a>"
' End If
  strr=strr&" "&pageno&" "
'小于最大页数才会显示下一页和尾页(可选)
' If pageno<maxpageno Then
   strr=strr&"<a href=""?pageno="&pageno+1&""" title=""下一页""><font face = Webdings>8</font></a>"
   strr=strr&" "
   strr=strr&"<a href=""?pageno="&maxpageno&""" title=""""><font face = Webdings>:</font></a>"
' End If
  strr=strr&" "
  strr=strr&(pageno-1)*maxpagesize+1&"/"&maxredcount&"条记录"
  strr=strr&" "
  strr=strr&pageno&"/"&maxpageno&"页"
  strr=strr&"</div></td>" & VbCrLf
  strr=strr&" </tr>" & vbCrLf
  strr=strr&"</table>"
  PageFoot=strr
End Function
'进行行列格式化函数
'TableWidth =表格宽度
'TableHeight =表格高度(因浏览器不同可能无效)
'-------------------------------------------------------------------------------
Public Function FormatCRtable(TableWidth,TableHeight)
  Dim i,strr
  i=0
  strr=""
  strr=strr&"<table width="""&TableWidth&""" border=""0"" cellspacing=""0"" cellpadding=""0"">" & vbCrLf
  strr=strr&" <tr>" & VbCrLf
  If maxredcount>0 Then
   Do While i<maxpagesize
   i=i+1
   If Not Rs.eof Then
   strr=strr&" <td width="""&TableWidth/Cols&""" height="""&Tableheight/Rows&""">有记录则进行输出</td>" & vbCrLf
   Rs.movenext
   Else
   strr=strr&" <td width="""&TableWidth/Cols&""" height="""&Tableheight/Rows&""">记录集不足时补余</td>" & VbCrLf
   End If
   If i Mod Cols = 0 Then
   strr=strr&" </tr>" & VbCrLf
   strr=strr&" <tr>" & vbCrLf
   End If
   Loop
  Else
   strr=strr&"<td height="""&TableWidth&""" valign=""top"">目前没有记录集</td>"
  End if
  strr=strr&" </tr>" & VbCrLf
  strr=strr&"</table>" & VbCrLf
  FormatCRtable=strr
End Function
%>
代码还有很多不足,而且写的也不是很严谨,见笑了。
以后可以会改为Class
转自:http://jorkin.reallydo.com/article.asp?id=15