|
导读小程序构成大项目之——分页显示 陈根发好久没有写文章了,就是觉得有点对不起自己,看我文章的... 小程序构成大项目之——分页显示 陈根发 好久没有写文章了,就是觉得有点对不起自己,看我文章的人大概不多,所以就无所谓对不对的起大家了。:) 笔者最近刚刚走出校门,满脑子混杂的东西,没有心事静下来写东西,今天有空,不错,写点。 我每次写的东西都有点班门弄斧的味道,但是抑制不住自己的想写的欲望。如果有碍视线,请各位见谅。 不过笔者最主要的意思还是希望大家通过这些只字片段认识我这个人。在人生的职业生涯中,技术也许是中坚力量,但是人生的整个旅途中,也许还有其他的东西比技术更重要!比如为人。 希望各位前辈指出文章及本人的不足,给我们后辈点一盏灯! 我今天要说的话题很简单,如何在vb.net中,实现分页显示,以便在表格控件中显示指定的记录数。它是实质就是从一个dataset1里的m条记录取出n条记录 存在另外一个dataset2中 需求明确了,接下来一起来做吧。 一.建立一个table与dataset1的table(0)结构一样,假设dataset1 只有一个table. Dim tab1 as datatable=dataset1. table(0).clone 二.定义一个object对象 ,用于存放指定的记录集 Dim Ary as object Dim I as integer For I=1 to n ‘n为应取出的记录数 Ary=dataset1. table(0).rows.itemarray(i) Next 三.用object对象更新dataset2 1. 通过rows更新tab1 drow.ItemArray = ary ‘drow为datarow对象 tab1.Rows.Add(drow) 2.通过tab1更新page ‘page 为返回的dataset对象 page.Tables.Add(tab1) 四.返回page return page 完整的代码示例如下: '=============================== '名称:page 类 '功能:分页 '============================== Class Page '----方法,分页 '参数(dataset总数 ,当前页号) Public Function pageset(ByVal ds As DataSet, ByVal curpage As Integer) As DataSet Dim i, j, r As Integer ' Dim j As Integer Dim m As Integer =25 '一页多少条 '页数 j j = CInt(ds.Tables(0).Rows.Count / m + 0.5) Dim page As New DataSet Dim tab As DataTable tab = ds.Tables(0).Clone Dim dr As DataRow Dim col As DataColumn Dim drow As DataRow ' Dim r As Integer = 0 Dim ary() As Object '判断传入的页数是否合理 If ds.Tables(0).Rows.Count <= 0 Then Exit Function End If If curpage < 1 Then curpage = 1 ElseIf curpage > j Then curpage = j End If '取符合条件m条记录 i = m * (curpage - 1) For Each dr In ds.Tables(0).Rows drow = tab.NewRow ary = ds.Tables(0).Rows(i).ItemArray drow.ItemArray = ary tab.Rows.Add(drow) i += 1 '有m条纪录就跳出 If i > m * curpage - 1 Then Exit For End If Next page.Tables.Add(tab) Return page End Function End Class 好了,大功告成,你只要把你的的表格控件的datasource设置为page ,OK! |
温馨提示:喜欢本站的话,请收藏一下本站!