首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
tellmenow (22)
cutemouse (22)
softj (78)
iiprogram (69)
qdzx2008 (50)
goodboy1881 (14)
wangchinaking (58)
fancyhf (1)
harrymeng (41)
yjz0065 (113)
CSDN - 文档中心 - .NET 阅读:6585   评论: 4    参与评论
标题   DataGrid也玩分页     选择自 online 的 Blog
关键字   DataGrid也玩分页
出处  

呵呵,不是.NET.

这几天论坛上回答问题,有人提出这个DataGrid控件的分页。

请看:

?

数据库:test2000.mdb

表:numbers

字段:Id(自动编号)anumber(数字)

?

因为DataGrid控件我们采用直接绑定记录集来显示数据.所以分页处理我们采用了间接的办法,定义另一个记录集objrs,将分页后的记录集付给objrs.然后绑定DataGrid

'效果还不错 , 我加了详细地注释?pagesize, AbsolutePage的用法可参考msdn

?

VB中新建工程,form中添加DataGrid控件,按钮cmdPreviouscmdNext,文本框txtPage

'引用microsoft active data object 2.x object library

Option Explicit

Dim conn As ADODB.Connection

Dim lCurrentPage As Long

?

Private Sub cmdNext_Click()

??? lCurrentPage = lCurrentPage + 1

??? Call Loadcontrol(lCurrentPage)

End Sub

?

Private Sub cmdPrevious_Click()

??? If lCurrentPage > 1 Then

??????? lCurrentPage = lCurrentPage - 1

??????? Call Loadcontrol(lCurrentPage)

??? End If

End Sub

?

Private Sub Form_Load()

???

??? Set conn = New ADODB.Connection

??? conn.CursorLocation = adUseClient

??? conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test2000.mdb;"

?

??? lCurrentPage = 1

??? Call Loadcontrol(lCurrentPage)

?

End Sub

Private Sub Loadcontrol(lPage As Long)

??? Dim adoPrimaryRS As ADODB.Recordset

??? Dim lPageCount As Long

??? Dim nPageSize As Integer

??? Dim lCount As Long

???

??? '每页显示的纪录

??? nPageSize = 10

??? Set adoPrimaryRS = New ADODB.Recordset

??? adoPrimaryRS.Open "select * from numbers", conn, adOpenStatic, adLockOptimistic

?

??? adoPrimaryRS.PageSize = nPageSize

??? '页数

??? lPageCount = adoPrimaryRS.PageCount

??? If lCurrentPage > lPageCount Then

??????? lCurrentPage = lPageCount

??? End If

???

??? adoPrimaryRS.AbsolutePage = lCurrentPage

??? '定义另一个记录集

??? Dim objrs As New ADODB.Recordset

??? '添加字段名称

??? For lCount = 0 To adoPrimaryRS.Fields.Count - 1

??????? objrs.Fields.Append adoPrimaryRS.Fields(lCount).Name, adVarChar, adoPrimaryRS.Fields(lCount).DefinedSize

??? Next

??? '打开记录集

??? objrs.Open

??? '将指定记录数循环添加到objrs

??? For lCount = 1 To nPageSize

??????? objrs.AddNew

??????? objrs!id = adoPrimaryRS!id

??????? objrs!anumber = adoPrimaryRS!anumber

??????? adoPrimaryRS.MoveNext

??? Next

??? '绑定

??? Set DataGrid1.DataSource = objrs

???

??? '在文本框显示页数

??? txtPage = lPage & "/" & adoPrimaryRS.PageCount

End Sub

?

Private Sub Form_Unload(Cancel As Integer)

??? If Not conn Is Nothing Then

??????? conn.Close

??? End If

??? Set conn = Nothing

End Sub

文本框中输入页数,回车跳转到指定位置

Private Sub txtPage_KeyDown(KeyCode As Integer, Shift As Integer)

??? lCurrentPage = Val(txtPage.Text)

??? Call Loadcontrol(lCurrentPage)

End Sub


相关文章
对该文的评论
CSDN 网友 ( 2004-10-14)
好多问号哦,是空格还是tab键?不过,很感谢你的帖子,楼主辛苦了,呵呵^*^
CSDN 网友 ( 2004-08-08)
全新推出原创ASP+C#开发的应用程序源代码
详细介绍请见:http://www.szlon.com
--------------------------------------------------

软件名称:阳光商务客户服务系统(iSBCS2.0) 
软件架构:B/S三层结构 
开发语言:ASP.NET + C# 
数 据 库:SQL2000/Access2000 
程序类别:WEB应用程序  
登陆用户:UserName:SZ1002 SZ1003 SZ1004 SZ1005 
          Password:123  
下载地址:http://www.szlon.com/Down/iSBCS.rar

---------------------------------------------------

软件名称:阳光商务图书借阅管理系统(iSBLS2.0) 
软件架构:B/S三层结构 
开发语言:ASP.NET + C# 
数 据 库:SQL2000/Access2000 
程序类别:WEB应用程序  
登陆用户:UserName:test1,test2,test3
          Password:123  
下载地址:http://www.szlon.com/Down/iSBLS2.0A.rar

---------------------------------------------------

软件名称:阳光私人小秘(iSISA2.0) 
软件架构:B/S三层结构 
开发语言:ASP.NET + C# 
数 据 库:SQL2000/Access2000 
程序类别:WEB应用程序  
登陆用户:admin 123 
下载地址:http://www.szlon.com/Down/iSISA.rar

---------------------------------------------------

软件名称:阳光商务短信群发王(iSBSMS2.0) 
软件架构:三层结构 
开发语言:C# + AT指令集 
数 据 库:Access2000 
程序类别:Windows应用程序  
下载地址:http://www.szlon.com/Down/iSBSMS.rar

--------------------------------------------------

软件名称:阳光商务邮件搜索王源码版(iSBES2.0) 
软件架构:三层结构 
开发语言:C# 
数 据 库:Access2000 
程序类别:Windows应用程序  
下载地址:http://www.szlon.com/down/iSBES.rar

--------------------------------------------------

软件名称:阳光公交宝典(iSBUS3.0)
软件架构:三层结构 
开发语言:C# 
数 据 库:Access2000 
程序类别:Windows应用程序  
下载地址:http://www.szlon.com/Down/iSBUS2003.rar

--------------------------------------------------

欲了解详细情况请直接访问http://www.szlon.com,欢迎客户来电来函垂询!

---------------------------------------------------------------------------------------------------
网站地址:http://www.szlen.com
联 系 人:陈先生
联系电话:0755-26742591 
传真号码:0755-26742783
电子邮件:sun188com@hotmail.com
软件演示:http://www.szlon.com
QQ:17506793
MSN:sun188com@hotmail.com
CSDN 网友 ( 2004-08-06)
贴的时候时候是好的
奇怪

还有blog中asp/asp.net是在一起的
所以这个帖子会出现在.net区
CSDN 网友 ( 2004-08-06)
怎么这么多问号?是不是编码问题?管理员也太不负责了。这样的文章也行!