惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
WordPress大学
WordPress大学
爱范儿
爱范儿
GbyAI
GbyAI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
Recent Announcements
Recent Announcements
Latest news
Latest news
Last Week in AI
Last Week in AI
V2EX - 技术
V2EX - 技术
I
InfoQ
N
News | PayPal Newsroom
SecWiki News
SecWiki News
Microsoft Azure Blog
Microsoft Azure Blog
美团技术团队
T
Troy Hunt's Blog
H
Hacker News: Front Page
S
SegmentFault 最新的问题
TaoSecurity Blog
TaoSecurity Blog
V
Visual Studio Blog
Martin Fowler
Martin Fowler
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
S
Security @ Cisco Blogs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
小众软件
小众软件
L
LangChain Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tor Project blog
L
LINUX DO - 热门话题
月光博客
月光博客
S
Schneier on Security
Y
Y Combinator Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Proofpoint News Feed
Forbes - Security
Forbes - Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
A
Arctic Wolf
Webroot Blog
Webroot Blog
博客园 - 叶小钗
F
Fortinet All Blogs
S
Securelist
AI
AI
B
Blog RSS Feed
Security Latest
Security Latest

博客园 - 生活即技术

好久不更新了,忙的惭愧哦,思考一个应用 利用dataTable 排序的解决方法 项目中遇到的一些小问题及解决方法 常用代码 一个com+消息队列的例子 部署Com+ 2004我的爱,2005我的期待 加密解密相关 生成略缩图 论坛在线人数统计代码 上礼拜六犯的愚蠢错误 正则表达式(1) 又一新的分页方法(转帖) 用户控件的使用(二) 用户控件的使用(一) DataList的使用(1) DataGrid的使用(2)自定义分页 DataGrid的使用(1)
DataList的使用(二)自定义分页的实现
生活即技术 · 2004-11-16 · via 博客园 - 生活即技术

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.ObjectByVal 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.ObjectByVal 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 ObjectByVal 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 是每页的大小