服务器之家

服务器之家 > 正文

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

时间:2019-10-25 11:20     来源/作者:asp技术网

没有用正常的循环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  
%> 

代码还有很多不足,而且写的也不是很严谨,见笑了。 

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部