DataList控件也玩分頁(vb)
2024-07-21 02:15:39
供稿:網友
今天開發了一個系統。需要用多一行多列去展示圖片。查找了一下datagird的屬性。發現其沒有重復列的功能。于是我使用了datalist的repeatcolumns="4"列重復功能,卻又發現datalist沒有分頁功能。怎么辦?于是寫了下面的關于的分頁程序。發出來希望對正在學asp.net程序的朋友能有所幫作。
下面是全部原代碼,這里我使用了dataadapter與dataset組合,在開始程序的時候,我們首先要熟悉一下asp.net 中 dataadapter,dataset和viewstate的一些屬性和使用方法:http://www.bookd.net/info/1461.htm ;
(本程序在.net framework beta 2下測試通過)
<%@ page language="vb" contenttype="text/html" responseencoding="gb2312" %>
<%@ register tagprefix="head" tagname="menu" src="menu/head.ascx" %>
<%@ import namespace="system.data" %>
<%@ import namespace="system.data.sqlclient" %>
<script runat="server">
dim db1 as string = "ietop_article"
dim myconn as new sqlconnection("uid=sa;password=;database=ietop;server=(local)") dim pagesize,pagecount,recordnum,currentpage as integer private sub page_load(byval sender as system.object, byval e as system.eventargs)
每頁顯示的個數 */
pagesize=20
聯接數據庫 */
myconn.open()
計算符合該新聞系統的新聞條數 */
dim strsql as string = "select count(*) as id from ["& db1 &"] where kind_id="&request("id")&""
dim mycomm as sqlcommand = new sqlcommand(strsql,myconn)
dim dr as sqldatareader = mycomm.executereader()
dim intcount as integer
if dr.read() then
intcount =dr("id")
else
intcount = 0
end if
dr.close()
myconn.close()
lblrecordcount.text =intcount
recordnum=intcount
'計算總共有多少頁 */
if recordnum mod pagesize=0 then
pagecount = recordnum/pagesize
else
pagecount = recordnum/pagesize +1
end if
viewstate(pagecount) = pagecount if not ispostback then
currentpage = 0
viewstate("pageindex") = 0
listbind()
end if end sub sub page_onclick(sender as object, e as commandeventargs)
currentpage = viewstate("pageindex")
pagecount = viewstate(pagecount)
dim cmd as string = e.commandname
select case cmd
case "next"
if currentpage<(pagecount-1) then currentpage=+1
case "prev"
if currentpage>0 then currentpage-=1
end select viewstate("pageindex") = currentpage
listbind() end sub
sub listbind()
dim startindex as integer
startindex = currentpage*pagesize
dim strsel as string = "select id,title,dtime,writer,image from ["& db1 &"] where kind_id="&request("id")&" order by id desc"
dim ds as dataset = new dataset()
dim myadapter as sqldataadapter = new sqldataadapter(strsel,myconn)
myadapter.fill(ds,startindex,pagesize,"result")
'讀取分頁數據:使用dataset,dataadapter.fill(objdataset,開始數,結尾數,"數據")
arts_list.datasource = ds.tables("result").defaultview
arts_list.repeatdirection = repeatdirection.horizontal
arts_list.databind() lbnnextpage.enabled = true
lbnprevpage.enabled = true
if(currentpage=(pagecount-1)) then lbnnextpage.enabled = false
if(currentpage=0) then lbnprevpage.enabled = false end sub </script>
<html>
<head>
<title>創藝家裝</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<link href="css/main.css" type="text/css" rel="stylesheet" />
</head>
<body>
<head:menu id="head1" runat="server"/>
<table cellspacing="0" cellpadding="0" width="769" border="0">
<tbody>
<tr>
<td width="158" bgcolor="#f2f2f2">
<img style="width: 158px; height: 50px" height="50" src=http://www.163design.net/a/s/"image/left1.gif" width="165" /></td>
<td width="18" background=http://www.163design.net/a/s/"image/left.gif" rowspan="2" valign="top"><img src=http://www.163design.net/a/s/"image/left.gif" width="18" />
</td>
<td valign="top" width="583" bgcolor="#ffffff" rowspan="2">
<table><tr> <td width="560"><img src=http://www.163design.net/a/s/"images/menu_shang.gif" /></td>
</tr>
|||;
<tr><td height="517" valign="top" >
<table border=0 width=100% cellspacing=0 cellpadding=0 align=center style=font-size:9pt>
<tr>
<td width=50% >
<div align=right>共有展圖
<asp:label id=lblrecordcount runat=server />張</div> </td>
</tr>
</table>
<asp:datalist id="arts_list" runat="server" cellpadding="10" repeatcolumns="4">
<itemtemplate> <a title="<%# container.dataitem("title") %> <%# container.dataitem("dtime") %>"
href="news_show1.aspx?kind_id=8&id=<%# container.dataitem("id") %>&class=<%# container.dataitem("title") %>" target="_blank"><img src=<%# container.dataitem("image") %> border="0" width="115" height="80"/> </a>
</itemtemplate>
</asp:datalist>
</td>
</tr>
</table>
<form runat=server >
<table width=100% border=0 align=center style=font-size:9pt>
<tr>
<td align=center>
<asp:linkbutton id=lbnprevpage text=上一頁 commandname=prev oncommand=page_onclick runat=server />
<asp:linkbutton id=lbnnextpage text=下一頁 commandname=next oncommand=page_onclick runat=server />
</td>
</tr>
</table>
</form>
</td>
<td width="10" rowspan="2" align="left" valign="top" background=http://www.163design.net/a/s/"image/right.gif"><img src=http://www.163design.net/a/s/"image/right.gif"></td>
</tr>
<tr>
<td bgcolor="#f2f2f2" height="311">
</td>
</tr>
</table>
<table height="27" cellspacing="0" cellpadding="0" width="769" border="0">
<tbody>
<tr>
<td bgcolor="#dedede">
</td>
</tr>
</tbody>
</table>
</body>
</html>