整个页面的运行效果见图1。 3 使用DataList控件进行自定义分页 DataGrid控件只能以表格的形式来显示数据,但是DataList控件可以以更自由的方式显示数据,比如可以在一行显示多条记录。不过DataList控件默认是不支持
整个页面的运行效果见图1。
3 使用DataList控件进行自定义分页
DataGrid控件只能以表格的形式来显示数据,但是DataList控件可以以更自由的方式显示数据,比如可以在一行显示多条记录。不过DataList控件默认是不支持分页显示的,也没有自带的分页导航栏,所以实现的方法会更复杂一点。这时需要我们自己自己计算记录总数和总的页数,编码实现页码导航栏,确定DataList控件要显示的页码。导航栏就是一些普通的HTML标记实现的链接到本网页的超级链接,单击这些超链接就会重新打开本页面,并将页码参数传递过去。软后根据要显示的当前页页码计算出当前页第一条记录的索引。最后使用OleDbDataAdapter对象的Fill(DataSet对象名,开始记录索引,每页最多允许记录数, "表名")方法来进行填充。具体实现代码如下。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack = False Then
Session("PageSize") = 4 ‘确定每页显示的记录个数。
‘根据记录总数和每页显示的记录个数计算总页数。
Session("PageCount") = Ceiling(CountTotal() / Session("PageSize"))
If Session("CurrentPageIndex") Is Nothing Then
Session("CurrentPageIndex") = 0
Else
Session("CurrentPageIndex") = Me.Request.QueryString("PageIndex") - 1
End If
Call MyDataBind()
Call myViewPage()
End If
End Sub
Sub MyDataBind()
Dim conn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("教材购销系统.mdb"))
Dim cmd As New OleDbCommand("select * from 教材一览表 order by 书名", conn)
Dim ds As New DataSet
Dim daap As New OleDbDataAdapter(cmd)
‘计算第一条记录的索引,按照每页的记录数填充到表"教材一览表"中去。
daap.Fill(ds, Session("CurrentPageIndex") * Session("PageSize"), Session("PageSize"), "教材一览表")
MyDataList.DataSource = ds.Tables("教材一览表") ''
MyDataList.DataBind()
End Sub
Function CountTotal()‘计算记录总数的函数。
Dim conn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("教材购销系统.mdb"))
Dim cmd As New OleDbCommand("select count(书号) from 教材一览表", conn)
conn.Open()
CountTotal = cmd.ExecuteScalar
conn.Close()
End Function
Sub myViewPage() ‘页码导航栏实现代码。
'首先显示当前页和总页码
lblPage.Text = "当前显示第" & (Session("CurrentPageIndex") + 1) & "页 / 共" & Session("PageCount") & "页"
'下面计算当前要显示的最小页码和最大页码
Dim intMin, intMax, I As Integer
intMin = (Int(Session("CurrentPageIndex") / 10)) * 10 + 1
intMax = (Int(Session("CurrentPageIndex") / 10)) * 10 + 10
If intMax > Session("PageCount") Then intMax = Session("PageCount")
'下面添加首页的超链接
lblPage.Text &= " 首页 "
'下面添加通往前10页的链接
If intMin - 1 > 1 Then
lblPage.Text &= "前10页 "
End If
'下面添加当前10页的链接
For I = intMin To intMax
lblPage.Text &= "" & I & " "
Next
'下面输出通往后10页的链接
If intMax + 1 < Session("PageCount") Then
lblPage.Text &= "后10页 "
End If
'下面输出通往尾页的链接
lblPage.Text &= "尾页 "
End Sub
(责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)
顶一下
(0)
0%
踩一下
(0)
0%
版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.