在asp中多行換行動態顯示圖片一直是程式員頭疼的問題,現本站整理如下:
檔案說明temp.md是資料庫名,裡邊有三個表,分別是id,title,2005111162310.shtml
listpicture.asp 多行多列顯示圖片
listpicture2.asp 多行多列顯示圖片,並可以分頁顯示
以下是程式碼片段:<html>
<head>
<title>多行多列顯示圖片</title>
</head>
<body>
<h2 align="center">多行多列顯示圖片</h2>
<table border="0" width="90%" align="center">
<%
dim db
set db=server.createobject("ADODB.CONNECTION")
db.open "DBQ=" & server.mappath("temp.mdb") & ";DRIVER={Microsoft Access Driver (*.mdb)};"
'建立Recordset對象
Dim strSql,rs
strSql ="select * from picture"
Set rs=db.execute(strSql)
Dim J
J=0 '該變數用來判斷是否換下一行
Response.Write "<tr>" '可以在這裡輸出開始新行的標記
Do While Not rs.Eof
J=J+1
'下面幾行輸出一個儲存格,其中顯示了圖片的縮圖,並顯示了該圖片的標題
Response.Write "<td align='center'>"
Response.Write "<a href='photo/" & rs("2005111162310.shtml") & "' target='_blank'><img src='photo/" & rs("2005111162310.shtml") & "' width='100' height='50'></a>"
Response.Write "<br>" & rs("title")
REsponse.Write "</td>"
' (J mod 3)表示求I除以3得到的餘數,如果為0,就表示需要在下一行開始顯示了。
If (J mod 3)=0 Then
Response.Write "</tr><tr>" '</tr>結束本行,<tr>開始下一行
End If
rs.MoveNext
Loop
%>
</table>
</body>
</html>
listpicture2.asp代碼 以下是程式碼片段:
<html>
<head>
<title>顯示圖片</title>
</head>
<body>
<h2 align="center">多行多列顯示圖片</h2>
<%
'下面的page_no變數用來確定顯示第幾頁資料。如果是第一次啟動該頁面,就令其為1。否則就由傳回來的參數page_no決定。
Dim page_no
If Request.QueryString("page_no")="" Then
page_no=1
Else
page_no=Cint(Request.QueryString("page_no")) '這裡用Cint將其轉換為整數
End If
'-------------------------------------------------------------------------------------------
%>
<center>
<table border="0" width="90%">
<%
dim db
set db=server.createobject("ADODB.CONNECTION")
db.open "DBQ=" & server.mappath("temp.mdb") & ";DRIVER={Microsoft Access Driver (*.mdb)};"
'建立Recordset對象
Set rs=Server.CreateObject("ADODB.Recordset")
strSql ="select * from picture"
rs.Open strSql,db,1 '因為要分頁顯示,所以用鍵盤指標
'下面查詢記錄,如果非空就顯示記錄
If Not rs.Bof And Not rs.Eof Then
'以下主要為了分頁顯示
rs.PageSize=9 '設定每頁顯示6條記錄
dim page_total '定義總頁數變數
page_total=rs.PageCount '返回總頁數,會在下面輸出資料頁時用到
rs.AbsolutePage=page_no '設定當前顯示第幾頁,這裡用到了傳過來的page_no。
'下面一段利用表格顯示當前頁的所有記錄
Dim I,J
I=rs.PageSize '變數I用來控制顯示當前頁記錄,注意這裡和rs.PageSize要一致。
J=0 '變數J用來控制每行顯示3條記錄
Response.Write "<tr>" '可以在這裡輸出開始新行的標記
Do While Not rs.Eof And I>0 '迴圈直到當前頁結束或檔案結尾
I=I-1 '每顯示一條,I減1,當變成0時,表示本頁結束
J=J+1
'下面幾行輸出一個儲存格,其中顯示了圖片的縮圖,並顯示了該圖片的標題
Response.Write "<td align='center'>"
Response.Write "<a href='photo/" & rs("2005111162310.shtml") & "' target='_blank'><img src='photo/" & rs("2005111162310.shtml") & "' width='100',height='50'></a>"
Response.Write "<br>" & rs("title")
REsponse.Write "</td>"
'這裡規定每行顯示3張圖片,(J mod 3)表示求I除以3得到的餘數,如果為0,就表示需要在下一行開始顯示了。
'輸出</tr>標記,就可以結束本行,輸出<tr>標記,就表示下一個新行的開始。
If (J mod 3)=0 Then
Response.Write "</tr><tr>"
End If
rs.MoveNext
Loop
End if
%>
</table>
<%
'--------------------------------------------------------------------------------------
'這一段輸出頁數資訊,從1到總頁數Page_total迴圈。Page_total由上面分頁顯示決定。
Response.Write "<p>共有" & page_total & "頁,"
Response.Write "當前顯示" & page_no & "頁,"
Response.Write "請選擇資料頁: "
For I=1 To page_total
%>
<a href="listpictureb.asp?page_no=<%=I%>"><%=I%></a>
<%
Next
%>
</center>
</body>
</html>