
























Datalist_page.aspx页
Datalist_page.aspx.vb页
Public Class DataList_Page
Inherits System.Web.UI.Page![]()
#Region " Web 窗体设计器生成的代码 "![]()
'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()![]()
End Sub
Protected WithEvents DataList1 As System.Web.UI.WebControls.DataList
Protected WithEvents frist As System.Web.UI.WebControls.LinkButton
Protected WithEvents prePage As System.Web.UI.WebControls.LinkButton
Protected WithEvents nextPage As System.Web.UI.WebControls.LinkButton
Protected WithEvents lastPage As System.Web.UI.WebControls.LinkButton
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents CurrenPage_ As System.Web.UI.HtmlControls.HtmlInputHidden
Protected WithEvents Current_ As System.Web.UI.HtmlControls.HtmlInputHidden![]()
'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object![]()
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub![]()
#End Region
Const Pagesize As Integer = 10
Public Totalpage As Int32
Dim CurrentPage As Int32
Dim TotalCount As Integer
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not IsPostBack Then
DataList1.DataSource = Databind_(0)
DataList1.DataBind()
Totalpage = GetTotalPage()
Label1.Text = "当前页:1/" & Totalpage
Current_.Value = 1
End If
End Sub
Function Databind_(ByVal StartIndex) As System.Data.DataTable
Dim Sqlstr As String = "server=(local);database=Achem56;uid=sa;pwd= "
Dim Sql As String = "select id,uname from user_login "
Dim Sqlconn As New System.Data.SqlClient.SqlConnection(Sqlstr)
Dim Sqlcmd As New System.Data.SqlClient.SqlDataAdapter(Sql, Sqlconn)
Dim SqlDataSet As New DataSet
Sqlcmd.Fill(SqlDataSet, StartIndex, Pagesize, "user_login")
Return SqlDataSet.Tables("user_login")
End Function
Function GetTotalPage() As Int64 '取得总页数
Dim Sqlstr As String = "server=(local);database=Achem56;uid=tiantian;pwd=tiantian "
Dim Sql As String = "select id,uname from user_login order by id desc "
Dim Sqlconn As New System.Data.SqlClient.SqlConnection(Sqlstr)
Sqlconn.Open()
Dim Sqlcommand As New System.Data.SqlClient.SqlCommand
Sqlcommand.CommandText = "select count(id) from user_login "
Sqlcommand.Connection = Sqlconn
TotalCount = Sqlcommand.ExecuteScalar
Sqlconn.Close()
If TotalCount Mod Pagesize <> 0 Then
GetTotalPage = TotalCount \ Pagesize + 1
Else
GetTotalPage = TotalCount \ Pagesize
End If
End Function
Sub PagerButtonClick(ByVal send As Object, ByVal e As CommandEventArgs) '上一页,下一页,首页,尾页的处理
Dim Current_Page As Int32 = CInt(Current_.Value)
Totalpage = GetTotalPage()
Select Case e.CommandArgument
Case "Frist"
DataList1.DataSource = Databind_(0)
DataList1.DataBind()
Label1.Text = "当前页:1 / " & Totalpage
Current_.Value = 1
Case "pre"
If Current_Page > 1 Then
Current_Page = Current_Page - 1
Label1.Text = "当前页:" & Current_Page & "/" & Totalpage
DataList1.DataSource = Databind_((Current_Page - 1) * Pagesize)
DataList1.DataBind()
Current_.Value = Current_Page.ToString
End If
Case "next"
If Current_Page < Totalpage Then
Current_Page = Current_Page + 1
Label1.Text = "当前页:" & Current_Page & "/" & Totalpage
DataList1.DataSource = Databind_((Current_Page - 1) * Pagesize)
DataList1.DataBind()
Current_.Value = Current_Page.ToString
End If
Case "last"
Label1.Text = "当前页:" & Totalpage & "/" & Totalpage
DataList1.DataSource = Databind_((Totalpage - 1) * Pagesize)
DataList1.DataBind()
Current_.Value = Totalpage
End Select
End Sub
End Class
今天终于实现了DataGrid、DataList的自定义分页,其实Reapeater实现的方法是一样的。
关键是adapter.fill(ds,StartRecord,size,"表名")
StartRecord 是开始的记录号。计算方法是 (页数-1)*页的大小
size 是每页的大小
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。