Pagerのコンパクトなページングコントロール
4326 ワード
ユーザーコントロールの作成:Pager.ascx、バックグラウンドコード:
public partial class Pager : System.Web.UI.UserControl{private string_UrlFormat;private int_PageSize=10;private int_RecordCount;private int_PageCount=5;/**/////接続形式//public string UrlFormat{get{ return _UrlFormat; } set { _UrlFormat = value; }//**//////ページ長//public int PageSize{get{return_PageSize; } set { _PageSize = value; }/**//////現在のページ番号//public int PageIndex{get{string Pageindex=HttpContext.Current.Request.QueryString["i"];if(Pageindex!=null) { return int.Parse(Pageindex); } return 1; }//**//////総記録数//public int RecordCount{get{return_RecordCount; } set { _RecordCount = value; }}/*//////両側に個数//public int PageCount{get{return_PageCount; } set { _PageCount = value; } } protected override void Render(HtmlTextWriter writer) { if (RecordCount == 0) return; int SumPage = (RecordCount + PageSize - 1)/PageSize; int start = PageIndex - PageCount; int end = PageIndex + PageCount;//PageIndexを中心に、Page個のページ番号ナビゲーションif(SumPage>(PageCount*2+1){if(start<1){start=1;end=start+10; } else if (end > SumPage) { start = SumPage - 10; end = SumPage; } } else { start = 1; end = SumPage; }
string tmp = "[{0}]"; StringBuilder sb=new StringBuilder(string.Format(「ページ数:{0}/{1}毎ページ:{2}合計:{3}条」,PageIndex,SumPage,PageSize,RecordCount);if(PageIndex>1){sb.Append(string.Format)(「「トップページ」,1);sb.Append(string.Format(「「前ページ」,PageIndex-1); } for (int i = start; i <= end; i++) { if (i == PageIndex) { sb.Append(""+ PageIndex.ToString() + " "); } else { sb.Append(string.Format(tmp, i)); } sb.Append(" "); }if(PageIndex「次ページ」,PageIndex+1);sb.Append(string.Format(「">末页」,SumPage); } writer.Write(sb.ToString()); } protected void Page_Load(object sender, EventArgs e) {
} }
使用方法:
Pagerをページにドラッグして、ページのバックグラウンドコードに入り、以下のように設定します.
public partial class Pager : System.Web.UI.UserControl{private string_UrlFormat;private int_PageSize=10;private int_RecordCount;private int_PageCount=5;/**//
string tmp = "[{0}]"; StringBuilder sb=new StringBuilder(string.Format(「ページ数:{0}/{1}毎ページ:{2}合計:{3}条」,PageIndex,SumPage,PageSize,RecordCount);if(PageIndex>1){sb.Append(string.Format)(「「トップページ」,1);sb.Append(string.Format(「「前ページ」,PageIndex-1); } for (int i = start; i <= end; i++) { if (i == PageIndex) { sb.Append(""+ PageIndex.ToString() + " "); } else { sb.Append(string.Format(tmp, i)); } sb.Append(" "); }if(PageIndex
} }
使用方法:
Pagerをページにドラッグして、ページのバックグラウンドコードに入り、以下のように設定します.
Pager1.UrlFormat
=
"
?i={0}
"
;
//
int
recordcount, pagecount;
Repeater1.DataSource
=
;
Repeater1.DataBind();
Pager1.RecordCount
=
recordcount;