您目前尚未登陆,请选择【登陆】或【注册
首页->其他源码->学生管理信息系统+留言板>>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)