<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title></title> <mce:style type="text/css"><!-- .n{TEXT-DECORATION:none;cursor:pointer} a{color:black} a:hover{color:blue} .m{TEXT-DECORATION:none;cursor:default} a{color:black} --></mce:style><style type="text/css" mce_bogus="1"> .n{TEXT-DECORATION:none;cursor:pointer} a{color:black} a:hover{color:blue} .m{TEXT-DECORATION:none;cursor:default} a{color:black} </style> <mce:script type="text/javascript"><!-- var xmlHttp = null; var index, size = "10"; function $(id) { return document.getElementById(id); } function createXMLHttpRequest() { if (xmlHttp == null) { if (window.XMLHttpRequest) { //Mozilla 浏览器 xmlHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE浏览器 try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert('创建失败'); } } } } } function openAjax(para) { if (xmlHttp == null) { createXMLHttpRequest(); if (xmlHttp == null) { alert('出错'); return; } } xmlHttp.open("post", "RepeaterDemo.aspx?date=" + new Date().getTime(), true); xmlHttp.onreadystatechange = xmlHttpChange; xmlHttp, setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send(para); } function xmlHttpChange() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { alert(xmlHttp.readyState); $('resultDiv').innerHTML = xmlHttp.responseText; alert(xmlHttp.responseText); $('<%=lblCurrentPage.ClientID %>').innerText = index == null ? $('<%=lblCurrentPage.ClientID %>').innerText : index; if (index == 1) { $('<%=lbtnFirst.ClientID %>').disabled = true; $('<%=lbtnPrevious.ClientID %>').disabled = true; $('<%=lbtnFirst.ClientID %>').className = 'm'; $('<%=lbtnPrevious.ClientID %>').className = 'm'; } else { $('<%=lbtnFirst.ClientID %>').disabled = ''; $('<%=lbtnPrevious.ClientID %>').disabled = ''; $('<%=lbtnFirst.ClientID %>').className = 'n'; $('<%=lbtnPrevious.ClientID %>').className = 'n'; } if (index == document.getElementById('<%=lblPageCount.ClientID %>').innerText) { $('<%=lbtnNext.ClientID %>').disabled = true; $('<%=lbtnLast.ClientID %>').disabled = true; $('<%=lbtnNext.ClientID %>').className = 'm'; $('<%=lbtnLast.ClientID %>').className = 'm'; } else { $('<%=lbtnNext.ClientID %>').disabled = false; $('<%=lbtnLast.ClientID %>').disabled = false; $('<%=lbtnNext.ClientID %>').className = 'n'; $('<%=lbtnLast.ClientID %>').className = 'n'; } } } } function getHTML(operate) { if (event.srcElement.disabled) { return; } var currentPage; var pageSize = $('<%=txtPageSize.ClientID %>').value; var count = $('<%=lblCount.ClientID %>').innerText; if (operate == 'f') { currentPage = 1; } else if (operate == 'p') { currentPage = parseInt($('<%=lblCurrentPage.ClientID %>').innerText) - 1; } else if (operate == 'n') { currentPage = parseInt($('<%=lblCurrentPage.ClientID %>').innerText) + 1; } else if (operate == 'l') { currentPage = $('<%=lblPageCount.ClientID %>').innerText; } else if (operate == 'c') { currentPage = $('<%=lblCurrentPage.ClientID %>').innerText; if (pageSize == size) { return; } size = pageSize; } else { return; } index = currentPage; var para = "pageNum=" + currentPage + "&pageSize=" + pageSize + "&count=" + count; openAjax(para); } function verify() { if (isNaN(parseInt($('<%=txtPageSize.ClientID %>').value))) { alert('请输入数字!'); return false; } getHTML('c'); var count = parseInt($('<%=lblCount.ClientID %>').innerText); if (isNaN(count)) { return; } var pageCount = (count % size == 0) ? count / size : (count - (count % size)) / size + 1; $('<%=lblPageCount.ClientID %>').innerText = pageCount; var temp = parseInt($('<%=lblCurrentPage.ClientID %>').innerText); if (pageCount < temp) { $('<%=lblCurrentPage.ClientID %>').innerText = pageCount; index = pageCount; } } // --></mce:script> </head> <body> <form id="form1" runat="server"> <div id='resultDiv' style="cursor:auto" mce_style="cursor:auto"> <asp:Repeater ID="rp" runat="server"> <HeaderTemplate> <table><tr><td>编号</td><td>名称</td></tr> </HeaderTemplate> <AlternatingItemTemplate><tr><td><%#Eval("userid") %></td><td><%#Eval("userName") %></td></tr></AlternatingItemTemplate> <ItemTemplate><tr><td><%#Eval("userid") %></td><td><%#Eval("userName") %></td></tr></ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </div> 每页显示<asp:TextBox ID="txtPageSize" runat="server" Text="10"></asp:TextBox>条记录 & nbsp;<input type="button" value="设置" οnclick="return verify();" /><br /> 记录总数为:<asp:Label ID="lblCount" runat="server"></asp:Label> 共分<asp:Label ID="lblPageCount" runat="server"></asp:Label>页 当前为第<asp:Label ID="lblCurrentPage" runat="server"></asp:Label>页<br /> <asp:LinkButton ID="lbtnFirst" CssClass='n' OnClientClick="getHTML('f');return false;" Text="首页" runat="server"></asp:LinkButton> <asp:LinkButton ID="lbtnPrevious" CssClass='n' OnClientClick="getHTML('p');return false;" Text="上页" runat="server"></asp:LinkButton> <asp:LinkButton ID="lbtnNext" CssClass='n' OnClientClick="getHTML('n');return false;" Text="下页" runat="server"></asp:LinkButton> <asp:LinkButton ID="lbtnLast" CssClass='n' OnClientClick="getHTML('l');return false;" Text="末页" runat="server"></asp:LinkButton> </form> </body> </html> if (!Page.IsPostBack) { using (SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDBConnectionString"].ToString())) { SqlDataAdapter da = new SqlDataAdapter("select count(*) from UserInfo", Conn); DataSet ds = new DataSet(); da.Fill(ds, "UsersCount"); lblCount.Text = ds.Tables["UsersCount"].Rows[0][0].ToString(); da = new SqlDataAdapter("select * from UserInfo", Conn); int count, pageCount, pageSize, currentPage; int.TryParse(txtPageSize.Text, out pageSize); pageSize = pageSize == 0 ? 10 : pageSize; int.TryParse(lblCount.Text,out count); pageCount = count % pageSize == 0 ? count % pageSize : count % pageSize + 1; lblPageCount.Text = pageCount.ToString(); da.Fill(ds, 0, pageSize, "UserInfo"); lblCurrentPage.Text = "1"; currentPage = 1; rp.DataSource = ds.Tables["UserInfo"].DefaultView; rp.DataBind(); StringBuilder sb = new StringBuilder(); sb.Append("document.getElementById(" + lbtnFirst.ClientID + ").disabled=true;"); sb.Append("document.getElementById(" + lbtnPrevious.ClientID + ").disabled=true;"); if (pageCount == currentPage) { sb.Append("document.getElementById(" + lbtnNext.ClientID + ").disabled=true"); sb.Append("document.getElementById(" + lbtnLast.ClientID + ").disabled=true"); } ClientScript.RegisterStartupScript(this.GetType(), "disabled", "<mce:script type="text/javascript"><!-- " + sb.ToString() + " // --></mce:script>", true); } } } RepeaterDemo页面html代码如下: <asp:Repeater ID="rp" runat="server"> <HeaderTemplate> <table><tr><td>编号</td><td>名称</td></tr> </HeaderTemplate> <AlternatingItemTemplate><tr><td><%#Eval("userid") %></td><td><%#Eval("userName") %></td></tr></AlternatingItemTemplate> <ItemTemplate><tr><td><%#Eval("userid") %></td><td><%#Eval("userName") %></td></tr></ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> CS代码public string Connstr = ConfigurationManager.ConnectionStrings["TestDBConnectionString"].ToString(); protected void Page_Load(object sender, EventArgs e) { using (SqlConnection Conn = new SqlConnection(Connstr)) { SqlDataAdapter da = new SqlDataAdapter("select * from UserInfo",Conn); DataSet ds = new DataSet(); int count, pageSize, currentPage; int.TryParse(Request.Form["pageSize"], out pageSize); pageSize=pageSize==0?10:pageSize; int.TryParse(Request.Form["count"], out count); int.TryParse(Request.Form["pageNum"], out currentPage); int tempCount = count % pageSize == 0 ? count / pageSize : count / pageSize + 1; if (tempCount < currentPage) { currentPage = tempCount; } da.Fill(ds, (currentPage - 1) * pageSize, pageSize, "UserInfo"); rp.DataSource = ds.Tables[0].DefaultView; rp.DataBind(); Response.Clear(); StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); rp.RenderControl(htw); Response.Write(sw.ToString()); Response.End(); } } } 源http://blog.csdn.net/Sandy945/archive/2009/05/22/4208998.aspx 转帖