小程序构成大项目之——分页显示

           小程序构成大项目之——分页显示

 

陈根发

 

 

好久没有写文章了,就是觉得有点对不起自己,看我文章的人大概不多,所以就无所谓对不对的起大家了。:)

笔者最近刚刚走出校门,满脑子混杂的东西,没有心事静下来写东西,今天有空,不错,写点。

我每次写的东西都有点班门弄斧的味道,但是抑制不住自己的想写的欲望。如果有碍视线,请各位见谅。

不过笔者最主要的意思还是希望大家通过这些只字片段认识我这个人。在人生的职业生涯中,技术也许是中坚力量,但是人生的整个旅途中,也许还有其他的东西比技术更重要!比如为人。

希望各位前辈指出文章及本人的不足,给我们后辈点一盏灯!

我今天要说的话题很简单,如何在vb.net中,实现分页显示,以便在表格控件中显示指定的记录数。它是实质就是从一个dataset1里的m条记录取出n条记录 存在另外一个dataset2

 

需求明确了,接下来一起来做吧。

一.建立一个tabledataset1table(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

完整的代码示例如下:

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!

 

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

  

声明:本文版权与解释权归陈根发所有,如需转载,请保留完整的内容及此声明。

QQ: 78607770

E-Mail: chenyu0720@hotmail.com

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值