程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 我用ASP寫的m行n列的函數,動態輸出創建TABLE行列

我用ASP寫的m行n列的函數,動態輸出創建TABLE行列

編輯:關於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 
%> 
代碼還有很多不足,而且寫的也不是很嚴謹,見笑了。
以後可以會改為Class
轉自:http://jorkin.reallydo.com/article.asp?id=15
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved