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

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

陈根发

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

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

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

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

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

我今天要说的话题很简单,如何在 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!

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

为做一个百分百的程序员而奋斗!

个人gg个人说明:农民的儿子,或者说就是农民!二○岁以前过着平庸的生活,二○岁以后也不想传奇。

穷是二十年的主打歌,劣质的大衣,带洞的牛仔,不是卖酷,而是现实所逼。一年吃的饭 <=365*2 。 1.5 元一餐占 80% 。 2.5 元一餐占 19.9% ,大餐偶尔( 6 元以上),都是同学聚会,或是生活补贴发放之时!

郁闷时抽烟,袋烟!(城里人没有见过), 3.5 元一斤,烟起之时,举室皆惊,顾及旁人兄弟,不敢常抽。

偶尔喝酒,不求醉否,只求尽兴!每喝,兄弟代付酒钱!

爱好写,或是代码,或是心情文字,或是打油诗,即兴则书,从不收藏(代码例外)。

自小在将军县长大,耳染目睹,有所感染。兄弟有难,总是一马当先,加上乡下孩子吃苦耐劳,所以很少会输。

自认颇具毅力, 50 元第一次出远门,为了我的大学; 200 元逛厦门,为了生计;徒步 20 公里,为了省 2 元公交。

娱乐的主要活动是上网,不喜欢玩游戏,不喜欢耍 MM ,经常发帖。网友甚少,有则知心。

喜欢三句话,都是网友所赐:

1. 上天不会辜负任何人,你付出多少,就会得到多少!(自我安慰)

——— henry

2. 事业第一,爱情第二(自我勉励)

————阿当

3. 只要过程正确,结局一定会好(自我警告)

————陈忠

Published At
Categories with Web编程
Tagged with
comments powered by Disqus