生成repeater分页的页码,可以想datagrid一样分页。需要配合PagedDataSource 。

生成repeater分页的页码,可以想datagrid一样点击。需要配合PagedDataSource 。

public string CreatePagerLinks(PagedDataSource objPds, string BaseUrl)
  {
   int totalPageRanger = 3;//set page range is 5, means display five hyperlink for page selection
   int pageRanger = (totalPageRanger-1)/2;

   StringBuilder sbPager = new StringBuilder();

   if (!objPds.IsFirstPage)
   {
    // first page link
    sbPager.Append("<a href=\"");
    sbPager.Append(BaseUrl);
    sbPager.Append("\">|<</a> ");
    if (objPds.CurrentPageIndex != 1)
    {
     // previous page link
     sbPager.Append("<a href=\"");
     sbPager.Append(BaseUrl);
     sbPager.Append("&page=");
     sbPager.Append(objPds.CurrentPageIndex.ToString());
     sbPager.Append("\" alt=\"Previous Page\"><<</a>  ");
    }
   }


   int intLow = objPds.CurrentPageIndex + 1 - pageRanger;//pageindex + 1 = pagenumber
   int intHigh = objPds.CurrentPageIndex + 1 + pageRanger;//pageindex + 1 = pagenumber

   if (intLow < 1) intLow = 1;
   if (intHigh > objPds.PageCount) intHigh = objPds.PageCount;

   if (intHigh - intLow < totalPageRanger)
   {
    intHigh = intLow + totalPageRanger - 1;
    if (intHigh > objPds.PageCount)
     intHigh = objPds.PageCount;
   }
   if (intHigh - intLow < totalPageRanger)
   {
    intLow = intHigh - totalPageRanger + 1;
    if (intLow < 1)
     intLow = 1;
   }

   for (int x = intLow; x <= intHigh ; x++)
   {
    // numeric links
    if (x == objPds.CurrentPageIndex + 1) sbPager.Append(x.ToString() + "  ");
    else
    {
     sbPager.Append("<a href=\"");
     sbPager.Append(BaseUrl);
     sbPager.Append("&page=");
     sbPager.Append(x.ToString());
     sbPager.Append("\">");
     sbPager.Append(x.ToString());
     sbPager.Append("</a>  " );
    }
   }
   if (!objPds.IsLastPage)
   {
    if ((objPds.CurrentPageIndex + 2) != objPds.PageCount)
    {
     // next page link
     sbPager.Append("<a href=\"");
     sbPager.Append(BaseUrl);
     sbPager.Append("&page=");
     sbPager.Append(Convert.ToString(objPds.CurrentPageIndex + 2));
     sbPager.Append("\">>></a>  ");
    }
    // last page link
    sbPager.Append("<a href=\"");
    sbPager.Append(BaseUrl);
    sbPager.Append("&page=");
    sbPager.Append(objPds.PageCount.ToString());
    sbPager.Append("\">>|</a>");
   }
   // conver the final links to a string and assign to labels
   return sbPager.ToString();
  }


lilPage是一个literal,直接调用上面那个方法赋值就可以。

private void BindRepeater()
  {
   DataSet ds = new DataSet();

    ds = ......

   DataTable dt = ds.Tables[0];
   
   foreach (DataRow dr in dt.Rows)
   {
    if (dr["RewardImageUrl"]==null||dr["RewardImageUrl"].ToString().Length ==0)
     dr["RewardImageUrl"] = ConfigVar.Get("NO_PIC").ToString();
   }

   PagedDataSource pagedDataSource = new PagedDataSource();
   pagedDataSource.DataSource = ds.Tables[0].DefaultView;
   pagedDataSource.AllowPaging = true;
   pagedDataSource.PageSize = int.Parse(giftPageSize);

   //start paging
   if (GetPage() > -1)
   {
    // subtract 1 because the PagedDataSource uses a zero-based index
    int pageIndex = GetPage() - 1 ;
    // correct for a page index less than 0 or greater than the last page
    if (pageIndex < 0) pageIndex = 0;
    if (pageIndex > pagedDataSource.PageCount)
     pageIndex = pagedDataSource.PageCount - 1;
    pagedDataSource.CurrentPageIndex = pageIndex;
   }
   this.RepGiftList.DataSource = pagedDataSource;
   this.RepGiftList.DataBind();

   lilPage.Text = CreatePagerLinks(pagedDataSource, GetAbsolutUri());
  }

转载于:https://www.cnblogs.com/beyondjay/archive/2008/06/17/1224139.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值