一个Repeater的分页方法
1.前台页面:
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
<asp:Repeater ID="RptThankBrd" runat="server"
onitemdatabound="RptThankBrd_ItemDataBound">
<ItemTemplate>
<div class="thanktitle">
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
<span style="color:Blue">参调人:</span>
<%# DataBinder.Eval( Container.DataItem,"name") %>
</asp:PlaceHolder>
<asp:PlaceHolder ID="PlaceHolder2" runat="server">
<span style="color:Blue">流水号:</span>
<%# DataBinder.Eval( Container.DataItem,"batchid") %>
</asp:PlaceHolder>
</div>
<div class="thankcontent"><%# DataBinder.Eval( Container.DataItem,"answer") %></div>
<div class="pubdate">填写时间:<%# DataBinder.Eval( Container.DataItem,"insdate") %></div>
</ItemTemplate>
</asp:Repeater>
onitemdatabound="RptThankBrd_ItemDataBound">
<ItemTemplate>
<div class="thanktitle">
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
<span style="color:Blue">参调人:</span>
<%# DataBinder.Eval( Container.DataItem,"name") %>
</asp:PlaceHolder>
<asp:PlaceHolder ID="PlaceHolder2" runat="server">
<span style="color:Blue">流水号:</span>
<%# DataBinder.Eval( Container.DataItem,"batchid") %>
</asp:PlaceHolder>
</div>
<div class="thankcontent"><%# DataBinder.Eval( Container.DataItem,"answer") %></div>
<div class="pubdate">填写时间:<%# DataBinder.Eval( Container.DataItem,"insdate") %></div>
</ItemTemplate>
</asp:Repeater>
分页样式:
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
.vc
{
padding:30px 10px 20px;
width:90%!important;
overflow:visible;text-align:center; font-size:15px;
}
.vc a.o:link,.vc a.o:visited{margin:0 4px;padding:3px 6px;
border:1px solid #ddd;text-decoration:none;
background:#fff;}
.vc a.o:hover{border:1px solid #049;text-decoration:none;}
.vc a.obg:link,.vc a.obg:visited{background:#f00;color:#fff;}
{
padding:30px 10px 20px;
width:90%!important;
overflow:visible;text-align:center; font-size:15px;
}
.vc a.o:link,.vc a.o:visited{margin:0 4px;padding:3px 6px;
border:1px solid #ddd;text-decoration:none;
background:#fff;}
.vc a.o:hover{border:1px solid #049;text-decoration:none;}
.vc a.obg:link,.vc a.obg:visited{background:#f00;color:#fff;}
分页代码:
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
<div class="vc">
<script type="text/javascript">
document.onkeyup=function(e){if(window.event.keyCode==37){window.location.href=$("#HLpre").attr("href");}}
</script>
<asp:HyperLink ID="HLpre" runat="server" style=" font-size:12px;font-weight:bold; text-decoration:none;margin-right:15px;">«</asp:HyperLink>
第 <%=pagehtml %> 页 <asp:HyperLink ID="HLnext" runat="server" style=" font-size:12px;font-weight:bold; text-decoration:none;margin-left:15px;">»</asp:HyperLink>
<script type="text/javascript">
document.onkeydown=function(e){if(window.event.keyCode==39){window.location.href=$("#HLnext").attr("href");}}
</script>
</div>
<script type="text/javascript">
document.onkeyup=function(e){if(window.event.keyCode==37){window.location.href=$("#HLpre").attr("href");}}
</script>
<asp:HyperLink ID="HLpre" runat="server" style=" font-size:12px;font-weight:bold; text-decoration:none;margin-right:15px;">«</asp:HyperLink>
第 <%=pagehtml %> 页 <asp:HyperLink ID="HLnext" runat="server" style=" font-size:12px;font-weight:bold; text-decoration:none;margin-left:15px;">»</asp:HyperLink>
<script type="text/javascript">
document.onkeydown=function(e){if(window.event.keyCode==39){window.location.href=$("#HLnext").attr("href");}}
</script>
</div>
后台代码:
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
protected void Page_Load(object sender, EventArgs e)
{
//获取当前页码
if (!this.IsPostBack)
{
if (Request.Params["page"] == null)
curpage = 1;
else
{
string temp = Request.Params["page"].ToString();
curpage = ckString.intCheck(temp, 1);
}
}
//当前页面链接
cururl = "viewQuestionPaper.aspx";
//绑定数据
showthanklist(vote.getQuestionPaper(Request["surveyid"], Request["questionid"]));
}
}
//设置分页参数
int anonymous = 0;
int curpage = 1;
int pagesize = 2;//设置每页显示多少条记录
public string pagehtml = string.Empty;
public string cururl = string.Empty;
int pagenum = 15;//设置每个分组有多少页码
int startindex = 1;
//分页核心代码
private void showthanklist(DataTable dt)
{
PagedDataSource pagedata = new PagedDataSource();
//DataTable dt = LoadRepeater(id.ToString());
pagedata.DataSource = dt.DefaultView;
pagedata.PageSize = pagesize;
pagedata.AllowPaging = true;
int half = 1;
while ((half + 1) * 2 < pagenum) { half++; }
int start = 1;
int end = 1;
if (curpage > pagedata.PageCount || curpage < 1) curpage = 1;
pagedata.CurrentPageIndex = curpage - 1;
//如果页面总数小于分组数量.
if (pagenum >= pagedata.PageCount)
{ end = pagedata.PageCount; getPageindex(start, end, curpage); }
else
{
if (curpage - half > 0)
{
start = curpage - half;
if (curpage + half > pagedata.PageCount)
{
start = pagedata.PageCount - pagenum + 1;
end = pagedata.PageCount;
}
else
end = curpage + half;
}
else
{
start = 1;
end = pagenum > pagedata.PageCount ? pagedata.PageCount : pagenum;
}
getPageindex(start, end, curpage);
}
if (pagedata.PageCount == 1) //如果只有一个分组
{ HLpre.Visible = false; HLnext.Visible = false; }
else if (curpage == pagedata.PageCount && curpage > 1)//如果当前分组是最后一个分组
{
HLpre.Enabled = true;
HLnext.Enabled = false;
HLpre.NavigateUrl = cururl + "page=" + (curpage - 1);
}
else if (curpage == 1 && curpage < pagedata.PageCount)
{
HLpre.Enabled = false;
HLnext.Enabled = true;
HLnext.NavigateUrl = cururl + "page=" + (curpage + 1);
}
if (curpage > 1 && curpage < pagedata.PageCount)//如果当前分组处在中间
{
HLpre.Enabled = true;
HLpre.NavigateUrl = cururl + "page=" + (curpage - 1);
HLnext.NavigateUrl = cururl + "page=" + (curpage + 1);
HLnext.Enabled = true;
}
this.RptThankBrd.DataSource = pagedata;
this.RptThankBrd.DataBind();
}
//设置分页样式
private void getPageindex(int start, int end, int curpage)
{
pagehtml = "";
for (int i = start; i <= end; i++)
{
if (curpage == i) { pagehtml += "<a href='" + cururl + "page=" + Convert.ToString(i + startindex - 1) + "' class='o obg'>" + Convert.ToString(i + startindex - 1) + "</a>"; }
else
pagehtml += "<a href='" + cururl + "page=" + Convert.ToString(i + startindex - 1) + "' class='o '>" + Convert.ToString(i + startindex - 1) + "</a>";
}
}
{
//获取当前页码
if (!this.IsPostBack)
{
if (Request.Params["page"] == null)
curpage = 1;
else
{
string temp = Request.Params["page"].ToString();
curpage = ckString.intCheck(temp, 1);
}
}
//当前页面链接
cururl = "viewQuestionPaper.aspx";
//绑定数据
showthanklist(vote.getQuestionPaper(Request["surveyid"], Request["questionid"]));
}
}
//设置分页参数
int anonymous = 0;
int curpage = 1;
int pagesize = 2;//设置每页显示多少条记录
public string pagehtml = string.Empty;
public string cururl = string.Empty;
int pagenum = 15;//设置每个分组有多少页码
int startindex = 1;
//分页核心代码
private void showthanklist(DataTable dt)
{
PagedDataSource pagedata = new PagedDataSource();
//DataTable dt = LoadRepeater(id.ToString());
pagedata.DataSource = dt.DefaultView;
pagedata.PageSize = pagesize;
pagedata.AllowPaging = true;
int half = 1;
while ((half + 1) * 2 < pagenum) { half++; }
int start = 1;
int end = 1;
if (curpage > pagedata.PageCount || curpage < 1) curpage = 1;
pagedata.CurrentPageIndex = curpage - 1;
//如果页面总数小于分组数量.
if (pagenum >= pagedata.PageCount)
{ end = pagedata.PageCount; getPageindex(start, end, curpage); }
else
{
if (curpage - half > 0)
{
start = curpage - half;
if (curpage + half > pagedata.PageCount)
{
start = pagedata.PageCount - pagenum + 1;
end = pagedata.PageCount;
}
else
end = curpage + half;
}
else
{
start = 1;
end = pagenum > pagedata.PageCount ? pagedata.PageCount : pagenum;
}
getPageindex(start, end, curpage);
}
if (pagedata.PageCount == 1) //如果只有一个分组
{ HLpre.Visible = false; HLnext.Visible = false; }
else if (curpage == pagedata.PageCount && curpage > 1)//如果当前分组是最后一个分组
{
HLpre.Enabled = true;
HLnext.Enabled = false;
HLpre.NavigateUrl = cururl + "page=" + (curpage - 1);
}
else if (curpage == 1 && curpage < pagedata.PageCount)
{
HLpre.Enabled = false;
HLnext.Enabled = true;
HLnext.NavigateUrl = cururl + "page=" + (curpage + 1);
}
if (curpage > 1 && curpage < pagedata.PageCount)//如果当前分组处在中间
{
HLpre.Enabled = true;
HLpre.NavigateUrl = cururl + "page=" + (curpage - 1);
HLnext.NavigateUrl = cururl + "page=" + (curpage + 1);
HLnext.Enabled = true;
}
this.RptThankBrd.DataSource = pagedata;
this.RptThankBrd.DataBind();
}
//设置分页样式
private void getPageindex(int start, int end, int curpage)
{
pagehtml = "";
for (int i = start; i <= end; i++)
{
if (curpage == i) { pagehtml += "<a href='" + cururl + "page=" + Convert.ToString(i + startindex - 1) + "' class='o obg'>" + Convert.ToString(i + startindex - 1) + "</a>"; }
else
pagehtml += "<a href='" + cururl + "page=" + Convert.ToString(i + startindex - 1) + "' class='o '>" + Convert.ToString(i + startindex - 1) + "</a>";
}
}