ASP.NET Ajax 实现无刷新分页

使用Ajax的UpdatePanel控件和DataList控件 实现的无刷新分页。

详细过程:

1.1.  启动sqlserver,创建数据库ajax数据库中创建sale表,点击新建查询,写入代码:
create table sale
(
    sid char(5)  primary key,    --销售编号
    pid char(5),        --商品编号
    pname varchar(50),    --商品名称
    unit varchar(4),    --单位
    number int,        --销售数量
    price decimal,        --单价
    sdate datetime,        --销售日期
    people varchar(20)    --经手人
)
go
2.1  点击文件-新建-网站,命名WebAjax,点击确定按钮。

2.2.在默认项目中 添加个web窗体,命名为Default

2.3.在Default页面中,拖入一个ScriptManager控件,再拖入一个UpdatePanel控件

2.4.在UpdatePanel中拖入一个DataList控件,用来显示和分页 数据库中的商品数据;

2.5.写好DataList中数据模版和 模版样式

2.6.拖入三个个Lable控件,Lable1用来显示当前页,Lable2用来显示总页数,Lable3存储当前页码


2.7.拖入四个Button控件,Button1用来控制 显示首页数据,Button2用来控制 显示上一页数据,

Button3用来控制 显示下一页数据,Button4用来控制 显示尾页数据,

2.8,写后台cs代码,调试并成功。

1.前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Ajax实验</title>
    <style type="text/css">
        .style1
        {
            width: 100%;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">

            <ContentTemplate>
                <asp:DataList ID="DataList1" runat="server" BackColor="White" 
                    BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" 
                    GridLines="Horizontal">
                    <AlternatingItemStyle BackColor="#F7F7F7" />
                    <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                    <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
                    <ItemStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
                    <HeaderTemplate>
                    <table class="style1">
                            <tr>
                                                        <tr>
                                <td>
                                    销售编号</td>
                                <td>
                                    商品编号</td>
                                    <td>
                                    商品名称</td>
                                    <td>
                                    单位</td>
                                    <td>
                                    销售数量</td>
                                    <td>
                                    单价</td>
                                    <td>
                                    销售日期</td>
                                    <td>
                                    经手人</td>
                            </tr>
                            </tr>
                    </HeaderTemplate>
                    <ItemTemplate>
                            <tr>
                                <td>
                                    <%# DataBinder.Eval(Container.DataItem, "sid")%></td>
                                <td>
                                    <%# DataBinder.Eval(Container.DataItem, "pid")%></td>
                                    <td>
                                    <%# DataBinder.Eval(Container.DataItem, "pname")%></td>
                                    <td>
                                    <%# DataBinder.Eval(Container.DataItem, "unit")%></td>
                                    <td>
                                    <%# DataBinder.Eval(Container.DataItem, "number")%></td>
                                    <td>
                                    <%# DataBinder.Eval(Container.DataItem, "price")%></td>
                                    <td>
                                    <%# DataBinder.Eval(Container.DataItem, "sdate")%></td>
                                    <td>
                                    <%# DataBinder.Eval(Container.DataItem, "people")%></td>
                            </tr>
                    </ItemTemplate>
                    <FooterTemplate>
                    </table>
                    </FooterTemplate>
                    <SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                </asp:DataList>
          <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
          <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
                <asp:Button ID="Button1" runat="server" Text="首页" onclick="Button1_Click" />
                <asp:Button ID="Button2" runat="server" Text="上一页" onclick="Button2_Click" />
                <asp:Button ID="Button3" runat="server" Text="下一页" onclick="Button3_Click" />
                <asp:Button ID="Button4" runat="server" Text="尾页" onclick="Button4_Click" />
                <br />
                <asp:Label ID="Label3" runat="server" Text="1"></asp:Label>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>
    
</body>
</html>
2.后台
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

public partial class _Default : System.Web.UI.Page
{
    SqlConnection sqlcon = new SqlConnection(@"server=.\sqlexpress;database=ajax;integrated security=SSPI");
    public string strsql = "SELECT * FROM sale";
    PagedDataSource page = new PagedDataSource();
    protected void Page_Load(object sender, EventArgs e)
    {
        BindList(1);
    }

    private void BindList(int index)
    {
        SqlDataAdapter adp = new SqlDataAdapter(strsql, sqlcon);
        sqlcon.Open();
        DataSet dst = new DataSet();
        adp.Fill(dst, "table");
        DataTable tab = new DataTable();
        tab = dst.Tables["table"];
        page.DataSource = tab.DefaultView;
        //分页实现
        page.PageSize = 3;
        page.AllowPaging = true;

        page.CurrentPageIndex = index - 1;
        this.Label1.Text = index.ToString();
        this.Label2.Text = page.PageCount.ToString();
        DataList1.DataSource = page;
        DataList1.DataBind();
        sqlcon.Close();
    }


    protected void Button1_Click(object sender, EventArgs e)
    {
        BindList(1);
        Label3.Text = "1";
    }
    protected void Button2_Click(object sender, EventArgs e)//上一页
    {
        if (Convert.ToInt32(Label3.Text) == 1)
        {
            BindList(1);
            Label3.Text = "1";
        }
        else
        {
            BindList(Convert.ToInt32(Label3.Text)-1);
            Label3.Text = (Convert.ToInt32(Label3.Text)-1).ToString();
        }
    }
    protected void Button3_Click(object sender, EventArgs e)//下一页
    {
        if (Convert.ToInt32(Label3.Text) == (page.PageCount - 1))
        {
            BindList(page.PageCount);
            Label3.Text = page.PageCount.ToString();
        }
        else
        {
            BindList(Convert.ToInt32(Label3.Text) + 1);
            Label3.Text = (Convert.ToInt32(Label3.Text) + 1).ToString();
        }
    }
    protected void Button4_Click(object sender, EventArgs e)
    {
        BindList(page.PageCount);
        Label3.Text = page.PageCount.ToString();
    }
}


posted @ 2013-12-04 17:34  夏日凉风  阅读(264)  评论(0编辑  收藏  举报