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
currentpage = 1 调用填充数据集过程 readpage(currentpage) 绑定数据 binddata() 设置首页、第一页按钮不可见,显示下一页尾页按钮 button1.visible = false button2.visible = false button3.visible = true button4.visible = true
end sub
上一页按钮 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 |