在gridview 的分页当中,
是相当的个抑郁,
有1 2 3 的地方没有向上向下,
有向上向下的地方又没有1 2 3 导航
所以抽了个空自定义了一个,效果给大家看下
当然 没有大动干戈的重写一个gridview 控件
而是写了一个pageManager 类来对gridview 的page进行控制
ok,个人认为注释还凑合
代码如下
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Web;
5
using System.Web.Security;
6
using System.Web.UI;
7
using System.Web.UI.HtmlControls;
8
using System.Web.UI.WebControls;
9
using System.Web.UI.WebControls.WebParts;
10
using System.Drawing;
11
12
/// <summary>
13
///Pager 的摘要说明
14
/// </summary>
15
16
17
/*=========================彪悍的分割线============================================
18
* 时间:2008年9月24日1:30:21
19
* 作者:ATPKING
20
* 内容:分页管理类
21
* 功能描述:实现自定义的GridView 的分页控件
22
* 测试人:ATPKING
23
* 测试代码:
24
XianPGL.aspx 中测试通过
25
* 测试结论:能将GridView自定义一个分页
26
==========================彪悍的分割线============================================*/
27
public class PagerManager
28
{
29
private GridView _gridview;
30
31
public PagerManager()
32
{
33
}
34
public PagerManager(GridView gridview)
35
{
36
_gridview = gridview;
37
}
38
/// <summary>
39
/// 将gridview 启动自定义分页
40
/// </summary>
41
public void doPaging()
42
{
43
_gridview.AllowPaging = true;//将gridview 允许分页打开
44
_gridview.PageIndexChanging += new GridViewPageEventHandler(_gridview_PageIndexChanging);//注册分页事件
45
_gridview.RowCreated += new GridViewRowEventHandler(_gridview_RowCreated);//注册row绑定事件
46
}
47
public void doPaging(GridView g)
48
{
49
_gridview = g;
50
doPaging();
51
}
52
/// <summary>
53
/// 将gridview 启动自定义分页
54
/// </summary>
55
/// <param name="page">一页的行数</param>
56
public void doPaging(int page)
57
{
58
_gridview.PageSize = page;
59
doPaging();
60
}
61
/// <summary>
62
/// 将gridview 启动自定义分页
63
/// </summary>
64
/// <param name="page">一页的行数</param>
65
/// <param name="g">对应的Grid</param>
66
public void doPaging(int page, GridView g)
67
{
68
_gridview = g;
69
_gridview.PageSize = page;
70
71
doPaging();
72
}
73
void _gridview_RowCreated(object sender, GridViewRowEventArgs e)
74
{
75
if (e.Row.RowType == DataControlRowType.Pager)//当生成pager行时候
76
{
77
声明“第一页”、“前一页”、“后一页”、“最后页”、“页提示信息”
110
111
TableCell tmp = e.Row.Cells[0];// 读到系统的分页
112
tmp.Controls.Add(Button_IndexFirst);//将几个按钮添加在系统分页后面
113
tmp.Controls.Add(Button_IndexNext);
114
tmp.Controls.Add(Button_IndexPrevious);
115
tmp.Controls.Add(Button_IndexLast);
116
tmp.Controls.Add(label_Index);
117
118
119
}
120
}
121
122
void PageButtonClick(object sender, EventArgs e)
123
{
124
GridView tmpGridView = (GridView)((((((LinkButton)sender).Parent).Parent).Parent).Parent);//寻找到Button的祖孙控件GridView
125
LinkButton clickedButton = ((LinkButton)sender);
126
if (clickedButton.CommandName == "first")//当引发事件的按钮命令为First时
127
{
128
tmpGridView.PageIndex = 0;
129
tmpGridView.DataBind();
130
}
131
else if (clickedButton.CommandName == "next")
132
{
133
if (tmpGridView.PageIndex < tmpGridView.PageCount - 1)
134
{
135
tmpGridView.PageIndex = tmpGridView.PageIndex + 1;
136
tmpGridView.DataBind();
137
}
138
}
139
else if (clickedButton.CommandName == "previous")
140
{
141
if (tmpGridView.PageIndex >= 1)
142
{
143
tmpGridView.PageIndex -= 1;
144
tmpGridView.DataBind();
145
}
146
}
147
else if (clickedButton.CommandName == "last")
148
{
149
tmpGridView.PageIndex = tmpGridView.PageCount - 1;
150
tmpGridView.DataBind();
151
}
152
}
153
void _gridview_PageIndexChanging(object sender, GridViewPageEventArgs e)
154
{
155
_gridview.PageIndex = e.NewPageIndex;
156
_gridview.DataBind();
157
}
158
}
159

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

调用的时候非常方便,就在相应的地方实例化一个对象,之后执行dopaging 就ok
使用代码如下

ok,还是比较简单,当然有高手还是重写了gridview 只不过个人认为还是有点杀鸡用牛刀哦。
好了,本人应届毕业生 囧,还请各位看官多多指教