温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:学生管理信息系统+留言板
当前文件:
StudentSys/UserControl/CCPager.cs,打开代码结构图
StudentSys/UserControl/CCPager.cs,打开代码结构图1namespace StudentSys 2
{ 3
4
using System; 5
using System.Data; 6
using System.Drawing; 7
using System.Web; 8
using System.Web.UI.WebControls; 9
using System.Web.UI.HtmlControls; 10
11
public abstract class CCPager : System.Web.UI.UserControl 12
{ 13
public bool ShowFirst,ShowLast,ShowPrev,ShowNext,ShowTotal; 14
public string ShowFirstCaption,ShowLastCaption,ShowPrevCaption,ShowNextCaption,ShowTotalString,style,CssClass; 15
public int MaxPage,CurrentPage=1,NumberOfPages; 16
public enum PagerStyleEnum {NoPager,PageNumberOnly,Centered,Moved} 17
public PagerStyleEnum PagerStyle; 18
protected System.Web.UI.WebControls.LinkButton lnkFirst; 19
protected System.Web.UI.WebControls.LinkButton lnkPrev; 20
protected System.Web.UI.WebControls.LinkButton lnkNext; 21
protected System.Web.UI.WebControls.LinkButton lnkLast; 22
protected System.Web.UI.WebControls.Label lblNext; 23
protected System.Web.UI.WebControls.Label lblLast; 24
protected System.Web.UI.WebControls.Label ClosePar; 25
protected System.Web.UI.WebControls.Label lblShowTotal; 26
protected System.Web.UI.WebControls.Label lblFirst; 27
protected System.Web.UI.WebControls.Label OpenPar; 28
protected System.Web.UI.WebControls.Label Current; 29
protected System.Web.UI.WebControls.Repeater Repeater1; 30
protected System.Web.UI.WebControls.Label lblPrev; 31
protected bool PagerStartPressed=false,PagerEndPressed=false; 32
33
public event NavigateCompletedHandler NavigateCompleted; 34
35
public CCPager() 36
{ 37
this.Init += new System.EventHandler(Page_Init); 38
} 39
40
private void Page_Load(object sender, System.EventArgs e) 41
{ 42
//使用代码初始化页面 43
if(!IsPostBack) 44
{ 45
if(CssClass!=null) 46
{ 47
try 48
{ 49
lnkFirst.CssClass=CssClass; 50
lnkLast.CssClass=CssClass; 51
lnkPrev.CssClass=CssClass; 52
lnkNext.CssClass=CssClass; 53
lblPrev.CssClass=CssClass; 54
lblNext.CssClass=CssClass; 55
lblLast.CssClass=CssClass; 56
lblFirst.CssClass=CssClass; 57
lblShowTotal.CssClass=CssClass; 58
} 59
catch{} 60
} 61
62
63
if(style!=null) 64
{ 65
string[] pairs=style.Split(new Char[] {';'}); 66
string key,val; 67
for(int i=0;i<pairs.Length;i++) 68
{ 69
try 70
{ 71
key=pairs[i].Split(new Char[] {':'})[0].Trim(); 72
val=pairs[i].Split(new Char[] {':'})[1].Trim(); 73
lnkFirst.Style.Add(key,val); 74
lnkLast.Style.Add(key,val); 75
lnkPrev.Style.Add(key,val); 76
lnkNext.Style.Add(key,val); 77
lblPrev.Style.Add(key,val); 78
lblNext.Style.Add(key,val); 79
lblLast.Style.Add(key,val); 80
lblFirst.Style.Add(key,val); 81
lblShowTotal.Style.Add(key,val); 82
} 83
catch{} 84
} 85
} 86
87
ViewState["MaxPage"]=MaxPage; 88
lnkFirst.Text=ShowFirstCaption ; 89
lnkPrev.Text=ShowPrevCaption ; 90
lnkNext.Text=ShowNextCaption ; 91
lnkLast.Text=ShowLastCaption ; 92
lblPrev.Text=ShowPrevCaption ; 93
lblNext.Text=ShowNextCaption ; 94
lblLast.Text=ShowLastCaption ; 95
lblFirst.Text=ShowFirstCaption ; 96
lblShowTotal.Text=ShowTotalString+' '+MaxPage.ToString(); 97
Refresh_Components(); 98
} 99
else 100
{ 101
MaxPage=(int)ViewState["MaxPage"]; 102
try 103
{ 104
CurrentPage=(int)ViewState["CurrPage"];} 105
catch{CurrentPage=1;} 106
} 107
} 108
//刷新过程 109
private void Refresh_Components() 110
{ 111
if(ShowFirst) First_Create(); 112
if(ShowLast) Last_Create(); 113
if(ShowPrev) Prev_Create(); 114
if(ShowNext) Next_Create(); 115
Show_Pager(); 116
117
if(NavigateCompleted != null) 118
NavigateCompleted(this,CurrentPage); 119
120
} 121
122
protected void Repeater1_ItemDataBound(object source, RepeaterItemEventArgs e) 123
{ 124
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 125
{ 126
if(CssClass!=null) 127
{ 128
try 129
{ 130
((LinkButton)e.Item.FindControl("LinkButton1")).CssClass=CssClass; 131
} 132
catch{} 133
} 134
135
if(style!=null) 136
{ 137
string[] pairs=style.Split(new Char[] {';'}); 138
string key,val; 139
for(int i=0;i<pairs.Length;i++) 140
{ 141
try 142
{ 143
key=pairs[i].Split(new Char[] {':'})[0].Trim(); 144
val=pairs[i].Split(new Char[] {':'})[1].Trim(); 145
((LinkButton)e.Item.FindControl("LinkButton1")).Style.Add(key,val); 146
147
} 148
catch{} 149
} 150
} 151
} 152
153
} 154
155
private void Show_Pager() 156
{ 157
System.Collections.ArrayList values = new System.Collections.ArrayList(); 158
int StartRange; 159
switch(PagerStyle) 160
{ 161
case PagerStyleEnum.PageNumberOnly: 162
Repeater1.Visible=false; 163
Current.Visible=true; 164
Current.Text="当前第" + CurrentPage.ToString() + "页"; 165
lblShowTotal.Visible =ShowTotal; 166
break; 167
case PagerStyleEnum.Centered: 168
Repeater1.Visible=true; 169
Current.Visible=false; 170
171
StartRange=(CurrentPage<=(NumberOfPages/2))?1:CurrentPage-(NumberOfPages/2); 172
StartRange=(StartRange>=MaxPage-NumberOfPages+1)?MaxPage-NumberOfPages+1:StartRange; 173
StartRange=(StartRange<=0)?1:StartRange; 174
for(int i=StartRange;i<(StartRange+NumberOfPages)&&i<=MaxPage;i++) 175
{values.Add(new PagingData(i.ToString(), CurrentPage!=i));} 176
177
Repeater1.DataSource = values; 178
Repeater1.DataBind(); 179
lblShowTotal.Visible =ShowTotal; 180
break; 181
case PagerStyleEnum.Moved: 182
183
StartRange=((CurrentPage-1)/NumberOfPages)*NumberOfPages+1; 184
if(StartRange!=1) values.Add(new PagingData('<'+(StartRange-1).ToString(), true)); 185
for(int i=StartRange;(i<(StartRange+NumberOfPages))&&i<=MaxPage;i++) 186
{values.Add(new PagingData(i.ToString(), CurrentPage!=i));} 187
if(StartRange+NumberOfPages<=MaxPage) values.Add(new PagingData((StartRange+NumberOfPages).ToString()+'>', true)); 188
189
Repeater1.DataSource = values; 190
Repeater1.DataBind(); 191
192
Repeater1.Visible=true; 193
Current.Visible=false; 194
lblShowTotal.Visible =ShowTotal; 195
break; 196
case PagerStyleEnum.NoPager: 197
Repeater1.Visible=false; 198
Current.Visible=false; 199
OpenPar.Visible=false; 200
ClosePar.Visible=false; 201
lblShowTotal.Visible =false; 202
break; 203
} 204
205
} 206
private void First_Create() 207
{ 208
if (CurrentPage==1){lblFirst.Visible=true;lnkFirst.Visible=false;} 209
else{lblFirst.Visible=false;lnkFirst.Visible=true;}; 210
} 211
212
private void Last_Create() 213
{ 214
if (CurrentPage==MaxPage){lblLast.Visible=true;lnkLast.Visible=false;} 215
else{lblLast.Visible=false;lnkLast.Visible=true;}; 216
} 217
218
private void Next_Create() 219
{ 220
if (CurrentPage==MaxPage){lblNext.Visible=true;lnkNext.Visible=false;} 221
else{lblNext.Visible=false;lnkNext.Visible=true;}; 222
} 223
224
private void Prev_Create() 225
{ 226
if (CurrentPage==1){lblPrev.Visible=true;lnkPrev.Visible=false;} 227
else{lblPrev.Visible=false;lnkPrev.Visible=true;}; 228
} 229
230
private void Page_Init(object sender, EventArgs e) 231
{ 232
InitializeComponent(); 233
} 234
235
private void InitializeComponent() 236
{ 237
this.Load += new System.EventHandler(this.Page_Load); 238
239
} 240
241
private void lnkFirst_Click(object sender, System.EventArgs e) 242
{ 243
CurrentPage=1; 244
ViewState["CurrPage"]=CurrentPage; 245
Refresh_Components(); 246
} 247
248
private void lnkPrev_Click(object sender, System.EventArgs e) 249
{ 250
CurrentPage--; 251
ViewState["CurrPage"]=CurrentPage; 252
Refresh_Components(); 253
254
} 255
256
private void lnkNext_Click(object sender, System.EventArgs e) 257
{ 258
CurrentPage++; 259
ViewState["CurrPage"]=CurrentPage; 260
Refresh_Components(); 261
262
} 263
264
private void lnkLast_Click(object sender, System.EventArgs e)





}