后来研究了研究这个,做了些完善。
<%--这里用了个投机取巧的办法,不太好,不太好--%>
<a id="pre" href='javascript:prePage();' class="next" style="display:none">上一页</a>
<asp:Label ID="lblCurPage1" class="index" runat="server" Text=""></asp:Label>
<asp:Label ID="lblCurPage2" class="index" runat="server" Text=""></asp:Label>
<asp:Label ID="lblCurPage3" class="index" runat="server" Text=""></asp:Label>
<asp:Label ID="lblCurPage4" class="index" runat="server" Text="""></asp:Label>
<asp:Label ID="lblCurPage5" class="index" runat="server" Text=""></asp:Label>
<asp:Label ID="lblCurPage6" class="index" runat="server" Text=""></asp:Label>
<asp:Label ID="lblCurPage7" class="index" runat="server" Text=""></asp:Label>
<asp:Label ID="lblCurPage8" class="index" runat="server" Text=""></asp:Label>
<asp:Label ID="lblCurPage9" class="index" runat="server" Text=""></asp:Label>
<asp:Label ID="lblCurPage10" class="index" runat="server" Text=""></asp:Label>
<a id="next" href='javascript:nextPage();' class="next">下一页</a> <span class="total">
共<asp:Label ID="lblTotlePage" runat="server" Text=""></asp:Label>页 到第<input
id="txtPage" name="" runat="server" type="text" class="txt" οnkeyup="this.value=this.value.replace(/\D/g,'')" οnblur="checkTxt()" />页面</span><input
name="" type="button" value="跳转" class="btn" οnclick="jumpPage();" />
*****************************************************************************************
public partial class Dingdan_areas : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler//别忘了继承这个接口
{
DataTable dt = new DataTable();
dt = dingdansussServices.GetDDanList(sdname);
BindList(1, true,dt);
string callbackReference = ClientScript.GetCallbackEventReference(this, "arg", "ReceiveCallback", "content", false);
string callbackScript = string.Format("function CallServer(arg,content){{ {0} }}", callbackReference);
ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);
}
#region 分页
static int PAGESIZE = 15;
private int currentPageIndex;
public int pageIndex = 1;
protected void BindList(int pageIndex, bool needRender)
{
int pages = (dt.Rows.Count % PAGESIZE == 0) ? dt.Rows.Count / PAGESIZE : (dt.Rows.Count / PAGESIZE) + 1;
lblTotlePage.Text = pages.ToString();
if (needRender)
{
RenderPager(pages);
}
PagedDataSource pds = new PagedDataSource();
pds.DataSource = dt.DefaultView;
pds.AllowPaging = true;
pds.PageSize = 15;
if (pageIndex == 0)
{
pageIndex = 1;
}
//设置分页对象的当前索引
pds.CurrentPageIndex = pageIndex - 1;
Repeater1.DataSource = pds;
Repeater1.DataBind();
}
//通过这个重载,只需要调用这个方法,把datatable 传进来就行了,别的都不用管就可以实现分页了
protected void BindList(int pageIndex, bool needRender, DataTable dt)
{
if (dt == null) return;
int pages = (dt.Rows.Count % PAGESIZE == 0) ? dt.Rows.Count / PAGESIZE : (dt.Rows.Count / PAGESIZE) + 1;
lblTotlePage.Text = pages.ToString();
txtPage.Value = "1";
if (needRender)
{
RenderPager(pages);
}
PagedDataSource pds = new PagedDataSource();
pds.DataSource = dt.DefaultView;
pds.AllowPaging = true;
pds.PageSize = 15;
if (pageIndex == 0)
{
pageIndex = 1;
}
//设置分页对象的当前索引
pds.CurrentPageIndex = pageIndex - 1;
Repeater1.DataSource = pds;
Repeater1.DataBind();
}
protected void RenderPager(int pages)
{
StringBuilder sb = new StringBuilder();
do
{
if (pageIndex < 11)
{
sb.Remove(0, sb.Length);
sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>", pageIndex);
lblCurPage1.Text += sb.ToString();
}
else if (pageIndex < 21)
{
sb.Remove(0, sb.Length);
sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>", pageIndex);
lblCurPage2.Text += sb.ToString();
}
else if (pageIndex < 31)
{
sb.Remove(0, sb.Length);
sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>", pageIndex);
lblCurPage3.Text += sb.ToString();
}
else if (pageIndex < 41)
{
sb.Remove(0, sb.Length);
sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>", pageIndex);
lblCurPage4.Text += sb.ToString();
}
else if (pageIndex < 51)
{
sb.Remove(0, sb.Length);
sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>", pageIndex);
lblCurPage5.Text += sb.ToString();
}
else if (pageIndex < 61)
{
sb.Remove(0, sb.Length);
sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>", pageIndex);
lblCurPage6.Text += sb.ToString();
}
else if (pageIndex < 71)
{
sb.Remove(0, sb.Length);
sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>", pageIndex);
lblCurPage7.Text += sb.ToString();
}
else if (pageIndex < 81)
{
sb.Remove(0, sb.Length);
sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>", pageIndex);
lblCurPage8.Text += sb.ToString();
}
else if (pageIndex < 91)
{
sb.Remove(0, sb.Length);
sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>", pageIndex);
lblCurPage9.Text += sb.ToString();
}
else if (pageIndex < 101)
{
sb.Remove(0, sb.Length);
sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>", pageIndex);
lblCurPage10.Text += sb.ToString();
}
} while (pageIndex++ < pages);
//lblCurPage.Text = sb.ToString();
}
public void RaiseCallbackEvent(string eventArgument)
{
currentPageIndex = Convert.ToInt32(eventArgument);
BindList(currentPageIndex, false);
}
public string GetCallbackResult()
{
//返回再次绑定后的Repeater的表现内容
return RenderControl(Repeater1);
}
private string RenderControl(Control control)
{
StringWriter writer1 = new StringWriter(CultureInfo.InvariantCulture);
HtmlTextWriter writer2 = new HtmlTextWriter(writer1);
control.RenderControl(writer2);
writer2.Flush();
writer2.Close();
return writer1.ToString();
}
#endregion