private void DataBinds() { int pageItem = iarticle.GetArticlePageCount();//获得文总行数 int num = pageItem % 10;//计算总页数 int pageSize = pageItem / 10; //总页数 if (num > 0) //如果大于0则总页数加1 { pageSize++; } StringBuilder sb = new StringBuilder(); int forFrom = 0;//循环起始页 string pageindex = String.Empty;//当前页 if (Request.QueryString["page"] != null)//当前页索引不等于空则得到当前页 { pageindex = Request.QueryString["page"]; } else { pageindex = "0";//否则当前页索引等于0 } forFrom = (Convert.ToInt32(pageindex) / 10) * 10;//计算循环起始页 int forpage = forFrom + 10;//计算循环终止页 if (pageSize <= forpage)//如果总页数小于等于循环终止页则等于循环终止页 { forpage = pageSize; } if (forFrom > 0)//判断循环的页面是否在1-10之内,如果为true则加上'<<',代表第一页 { sb.Append(String.Format("<a href='Default.aspx?page{0}'>{1}</a>", 0, "<<")); } if (forFrom > 0)//判断循环的页面是否在1-10之内如果为true则加上:'<',代表上一页 { sb.Append(string.Format("<a href='Default.aspx?page={0}'>{1}</a>", forFrom - 1, "<")); } for (int i = forFrom; i < forpage; i++)//循环出当前的计算出的页面 { sb.Append(string.Format("<a href='Default.aspx?page={0}'>{1}</a>", i, i + 1)); } if (pageSize > forpage)//如果总页数大于循环终止页则在终止页后加上'>' { //因为索引从0开始计算所以不需要+1,代表下一页,并且加上最后一页 sb.Append(string.Format("<a href='Default.aspx?page={0}'>{1}</a>", forpage, ">")); sb.Append(string.Format("<a href='Default.aspx?page={0}'>{1}</a>", pageSize - 1, ">>")); } ltPage.Text = sb.ToString(); //放入Adrotator控件 //绑定数据因为索引从0开始计算的所以传入数据库需要+1 this.Repeater1.DataSource = iarticle.GetArticleAll((Convert.ToInt32(pageindex) + 1), 10); this.DataBind(); }