資源描述:
《asp.net自定義分頁導(dǎo)航控件設(shè)計(jì)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、ASP.NET自定義分頁導(dǎo)航控件設(shè)計(jì)摘要:針對ASE開發(fā)中分頁的需求,提出一種可行的方案,開發(fā)自定義的分頁導(dǎo)航控件,可應(yīng)用于需要分頁導(dǎo)航功能的任何數(shù)據(jù)綁定控件。分頁導(dǎo)航控件和數(shù)據(jù)是分離的,數(shù)據(jù)的顯示由用戶控制。通過設(shè)置分頁導(dǎo)航控件屬性和編寫簡單調(diào)用代碼,實(shí)現(xiàn)分頁導(dǎo)航功能,還可以通過URL切換頁碼。文章介紹了自定義分頁導(dǎo)航控件的設(shè)計(jì)過程,并通過實(shí)例詳細(xì)介紹了分頁導(dǎo)航控件的使用方法。中國8/vie 關(guān)鍵詞:ASP.;分頁導(dǎo)航控件;URL 中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A:1009-3044(2016)29-0004-04 在ASP.
2、開發(fā)中,為了方便排版及瀏覽,經(jīng)常需要使用分頁來實(shí)現(xiàn)。在數(shù)據(jù)量不大的情況下可以使用數(shù)據(jù)綁定控件的分頁功能n,實(shí)現(xiàn)這一需求。對于數(shù)據(jù)量較大的需求,一般通過編寫SQL語句或存儲過程實(shí)現(xiàn)分頁。分頁功能實(shí)現(xiàn)難度不大,但要實(shí)現(xiàn)功能較為完善的分頁導(dǎo)航功能,代碼編寫量大而且代碼重用率低。本文提出一種利用Repeater控件實(shí)現(xiàn)自定義分頁導(dǎo)航控件的方法,代碼實(shí)現(xiàn)簡單,可重用率高。 1分頁導(dǎo)航控件前端設(shè)計(jì) 在VS2010中添加一個(gè)PageSize{get;set;} publicintPerPageRecord{get;set;} publicimR
3、ecordCount{get;set;} 定義屬性PageCount(總頁數(shù)),與lblSumPage控件關(guān)聯(lián)?! ublicimPageCount { get { returnConvert.ToInt320blSumPage.Text); } set { lblSumPage.Text=value.ToString(); } } 定義屬性CurrentPage(當(dāng)前頁碼),與ltlCurrentPage控件關(guān)聯(lián)?! ublicimCurrentPage { get { returnConvert.T
4、oInt32(ltlCurrentPage.Text); } set { hlCurrentPage.Text=value.ToString(); } } 定義事件Itemmand(點(diǎn)擊頁碼之后觸發(fā)的事件),代碼如下: publiceventRepeatermandEventHandlerItemmand; 2.2分頁導(dǎo)航代碼實(shí)現(xiàn) 分頁導(dǎo)航控件的原理是通過控制lbtnPager控件顯示的數(shù)量和效果來實(shí)現(xiàn)分頁導(dǎo)航效果,為了方便代碼的書寫,定義pa-genum類,代碼如下: publicclasspagenum {
5、publicstringtext{get;set;} publicintBum{get;set;} publicboolenable{get;set;} } 定義計(jì)算總頁數(shù)方法?! ublicvoidcalcPageCount() { if(PerPageRecord==0) PerPageRecord=20; PageCount=(RecordCount-1)/PerPageRecord+1; } 定義bind方法,功能是根據(jù)總頁數(shù)、當(dāng)前頁碼、導(dǎo)航中顯示的頁碼數(shù),控制lbtnPager控件顯示的數(shù)量和效果?! u
6、blicvoidbind() { if(PageCountPageCount) CurrentPage=PageCount; Listnums=ne>O; if(CurrentPage!=1)//如果不是首頁 { pagenumnun=neO; num.text="首頁"; num.num=1: num.enable=true; BUlTIS.Add(num); } intm=fcurrentPage-1)/PageSize; if(m!=0)//如果不是1~PageSize頁 { pagenumnum=n
7、e0;