imports system.data.sqlclient public class webform1 inherits system.web.ui.page
dim scon as new sqlconnection("server=localhost;database=northwind;uid=sa;pwd=123") dim sda as sqldataadapter dim ds as dataset dim currentpage as integer '记录着目前在哪一页上 dim maxpage as integer '总共有多少页 const rowcount as integer = 3 '一页有多少行 dim rowsum as integer '总共有多少行
'窗体代码省略
private sub page_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
if not page.ispostback then sda = new sqldataadapter("select employeeid, lastname from employees order by employeeid", scon) ds = new dataset try sda.fill(ds, "employees") '获取总共有多少行 rowsum = ds.tables(0).rows.count catch ex as exception rowsum = 0 end try
'如果没有数据,退出过程 if rowsum = 0 then exit sub '计算出浏览数据的总页数 if rowsum mod rowcount > 0 then '有余数要加1 maxpage = rowsum / rowcount + 1 else '正好除尽 maxpage = rowsum / rowcount end if
currentpage = 1 '调用绑定数据过程 readpage(currentpage) binddata() label2.text = maxpage '首页和上一页按钮不可见 button1.visible = false button2.visible = false end if end sub
'创建一个绑定数据的过程 sub binddata() repeater1.datasource = ds repeater1.databind() label1.text = currentpage end sub
'创建一个填充数据集的过程 sub readpage(byval n as integer) sda = new sqldataadapter("select employeeid, lastname from employees order by employeeid", scon) ds = new dataset ds.clear() sda.fill(ds, (n - 1) * rowcount, rowcount, "employees") end sub
'首页按钮 private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click
'上一页按钮 private sub button2_click(byval sender as system.object, byval e as system.eventargs) handles button2.click '如果现在页是第二页,设置首页和上一页按钮不可见 if label1.text > 2 then button3.visible = true button4.visible = true else button1.visible = false button2.visible = false button3.visible = true button4.visible = true end if currentpage = label1.text - 1 readpage(currentpage) binddata() end sub
'下一页按钮 private sub button3_click(byval sender as system.object, byval e as system.eventargs) handles button3.click '如果现在页倒数第二页,设置最后页和下一页按钮不可见 if label1.text < label2.text - 1 then button1.visible = true button2.visible = true else button1.visible = true button2.visible = true button3.visible = false button4.visible = false end if currentpage = label1.text + 1 readpage(currentpage) binddata() end sub
'尾页按钮 private sub button4_click(byval sender as system.object, byval e as system.eventargs) handles button4.click '设置当前页为最大页数 currentpage = label2.text readpage(currentpage) binddata() button1.visible = true button2.visible = true button3.visible = false button4.visible = false end sub end class