DataGrid也玩分页
来源:互联网 发布:成功 知乎 编辑:程序博客网 时间:2024/04/30 00:58
呵呵,不是.NET的.
这几天论坛上回答问题,有人提出这个DataGrid控件的分页。
请看:
数据库:test2000.mdb
表:numbers
字段:Id(自动编号),anumber(数字)
因为DataGrid控件我们采用直接绑定记录集来显示数据.所以分页处理我们采用了间接的办法,定义另一个记录集objrs,将分页后的记录集付给objrs.然后绑定DataGrid
'效果还不错 , 我加了详细地注释?像pagesize, AbsolutePage的用法可参考msdn
VB中新建工程,form中添加DataGrid控件,按钮cmdPrevious和cmdNext,文本框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
- DataGrid也玩分页
- DataGrid也玩分页
- DataList控件也玩分页
- DataList控件也玩分页
- DataList控件也玩分页
- DataList控件也玩分页
- DataList控件也玩分页
- DataList控件也玩分页
- DataList控件也玩分页
- DataList控件也玩分页(vb)
- DataList控件也玩分页-转贴
- DataList控件也玩分页-转贴
- 关于DataList控件也玩分页的我的修改
- DataList控件也玩分页 (转自aspcn.com)
- DataList控件也玩分页 (转自aspcn.com)
- datagrid分页
- DataGrid分页
- datagrid分页
- 一个程序详细研究DataReader
- 中新网8月5日电 据京华时报报道,来自建设部下属的全国超限高层建筑工程抗震设防审查专家委员会的消息证实,北京奥运会主会场--国家体育场(“鸟巢”)没有通过该委员会今年7月组织的“抗震设防”审查。
- 基金系统的初步研究(1)
- EJB编程及J2EE系统架构和设计
- JAVA
- DataGrid也玩分页
- 又跑老婆家里了
- 想不通的Exchange Server问题--想通了
- 2004-08-05工作日志
- VC下利用多线程实现文件的快速检索
- 网上看的实现职业规划的几点看法 Javcs[原作]
- ASP.NET 2.0数据缓存功能简介(原作)
- 操作ini文件
- Tomcat5.0+mysql配置JDBCRealm,DBCP,ssl,中文乱码处理