ASP.NET之AJAX分页步骤

一、在ASPX页面中的代码部分

第一步:在aspx页面中注册组件
-----------------------------------------
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>

第二步:在<form id="form_base" runat="server"></form>中加入ScriptManager
-----------------------------------------

<asp:ScriptManager runat="server" ID="scriptManager">
</asp:ScriptManager>

第三步:用UpdatePanel和ContentTemplate包起来  UpdatePanel 中的UpdateMode="Conditional"很重要

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>

<!--循环数据开始-->
<asp:Repeater ID="Repeater1"  runat="server">
<HeaderTemplate>
<table>
     <tr>
        <th>订单号</th>
        <th>预约商家</th>
        <th>预约时间</th>
     </tr>
</HeaderTemplate>
<ItemTemplate>
     <tr>
         <td><%#Eval("orderID")%></td>
         <td><%#Eval("cname")%></td>
         <td><%#Eval("jtime")%></td>
     </tr>               
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<!--循环数据结束-->

<!--分页开始-->
<div id="page"> 
<webdiyer:aspnetpager id="AspNetPager1" runat="server" onpagechanging="AspNetPager1_PageChanging" FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PageSize="3" PrevPageText="上一页" AlwaysShow="True"></webdiyer:aspnetpager>
<asp:Label ID="Label1" runat="server" Visible="False"></asp:Label>
</div>
<!--分页结束-->
</ContentTemplate>
</asp:UpdatePanel>

二、在ASPX.CS代码中的部分

第一步:在Page_Load()中加入
protected void Page_Load(object sender, EventArgs e)
{
        if (!IsPostBack)
        {
		//为AspNetPager1控件注册一个异步回发方式
        scriptManager.RegisterAsyncPostBackControl(AspNetPager1);

		string sqlStr = "select * from jorder where pname='" + this.jname.Text.ToString() + "' order by pstatus,orderID desc";
                Label1.Text = sqlStr.ToString(); //分页,绑定SQL语句
                Pagebangding(Label1.Text);//分页绑定
	}
}

第二步:加入方法两个
/// <summary>
/// 分页绑定数据
/// </summary>
private void Pagebangding(string sql)
{
        this.AspNetPager1.RecordCount = new DataBaseSql().GetDataTableCount(sql);
        if (this.AspNetPager1.RecordCount > 0)
        {
            countStr = this.AspNetPager1.RecordCount.ToString();//记录数
        }
        else
        {
            countStr = "0";
        }
        DataSet ds = new DataBaseSql().GetPageDataSet(this.AspNetPager1.PageSize, this.AspNetPager1.CurrentPageIndex, sql, "jorder");//"jorder"为数据库表名称
        this.Repeater1.DataSource = ds;
        this.Repeater1.DataBind();
}

/// <summary>
/// 分页
/// </summary>
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
        //调用UpdatePanel的Update()方法更新内容
        UpdatePanel1.Update();
		//设置更新的模式(比较重要,如果为Always就无法实现AJAX分页)
        UpdatePanel1.UpdateMode = UpdatePanelUpdateMode.Conditional;

        this.AspNetPager1.CurrentPageIndex = e.NewPageIndex;
        this.ViewState["index"] = e.NewPageIndex.ToString();
        Pagebangding(Label1.Text);//绑定数据
}

  

posted @ 2012-02-06 15:22  cyjch  阅读(1457)  评论(0编辑  收藏  举报