一个简单ajax repeater分页demo 改进版. 代码如下.. <a href="javascript:void(0)" mce_href="javascript:void(0)" οnclick="getData(0)">1</a> <a href="javascript:void(0)" mce_href="javascript:void(0)" οnclick="getData(1)">2</a> <a href="javascript:void(0)" mce_href="javascript:void(0)" οnclick="getData(2)">3</a> <mce:script type="text/javascript"><!-- var xmlHttp; function getData(pIndex) { if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } var url = "MyAjaxPager.aspx?index=" + escape(pIndex) + "&num=" + new Date().getTime(); alert(url); xmlHttp.open("GET", url, true); xmlHttp.onreadystatechange = ShowRepeaterData; xmlHttp.send(null); } function ShowRepeaterData() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { var gridData = xmlHttp.responseText; alert(gridData); var grid = document.getElementById("grid"); grid.innerHTML =gridData; } } // --></mce:script> //加上这句代码 不然会报控件不在runat="server"错误 public override void VerifyRenderingInServerForm(Control control) { //base.VerifyRenderingInServerForm(control); } //将repeater数据以html形式输出然后通过前台innerHTML private string GetHtml(Control control) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); HtmlTextWriter ht = new HtmlTextWriter(sw); control.RenderControl(ht); return sb.ToString(); } //页面加载 根据接收过来数字显示当前页 protected void Page_Load(object sender, EventArgs e) { int index = 0; if (int.TryParse(Request.QueryString["index"], out index)) { Response.Clear(); string html = this.GetHtml(rptGrid); Response.Write(html); Response.End(); } }