代碼實現DataList控件的分頁顯示

爲DataList控件實現 記錄統計 分頁統計 上下頁 首末頁
不多說了
HTML代碼如下:
    <asp:DataList ID="DataList1" runat="server" DataKeyField="ZhuCYHM">
        <ItemTemplate>
            BianH:
            <asp:Label ID="BianHLabel" runat="server" Text='<%# Eval("BianH") %>'></asp:Label><br />
            ZhuCYHM:
            <asp:Label ID="ZhuCYHMLabel" runat="server" Text='<%# Eval("ZhuCYHM") %>'></asp:Label><br />
            XingM:
            <asp:Label ID="XingMLabel" runat="server" Text='<%# Eval("XingM") %>'></asp:Label><br />
            XingB:
            <asp:Label ID="XingBLabel" runat="server" Text='<%# Eval("XingB") %>'></asp:Label><br />
            <br />
        </ItemTemplate>
    </asp:DataList><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:XBMISConnectionString %>"
        SelectCommand="SELECT BianH, ZhuCYHM, XingM, XingB FROM T_YongH"></asp:SqlDataSource>
    <br />
    <table style="width: 619px; height: 75px">
        <tr>
            <td colspan="3" rowspan="3" style="font-family: 宋體; width: 436px;">
                共<asp:label id="lblRecordCount" runat="server">Label</asp:label>條記錄&nbsp; 共<asp:label id="lblPageCount" runat="server">Label</asp:label>頁 當前第<asp:label id="lblCurrentPage" runat="server">Label</asp:label>頁&nbsp;
                <asp:LinkButton id="lkFirstPage" runat="server" OnCommand="Page_OnClick" CommandName="first">首頁</asp:LinkButton>&nbsp;
                <asp:linkbutton id="lkPrevPage" runat="server" OnCommand="Page_OnClick" CommandName="prev">上一頁</asp:linkbutton>&nbsp;&nbsp;
                <asp:linkbutton id="lkNextPage" runat="server" OnCommand="Page_OnClick" CommandName="next">下一頁</asp:linkbutton>&nbsp;
                <asp:LinkButton id="lkLastPage" runat="server" OnCommand="Page_OnClick" CommandName="last">尾頁</asp:LinkButton>
            </td>
        </tr>
    </table>

後臺代碼如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class DataList_exam6 : System.Web.UI.Page
{
    int PageSize, RecordCount, PageCount, CurrentPage;
    protected void Page_Load(object sender, EventArgs e)
    {
        //每頁中顯示的記錄數目
        PageSize = 3;
        if (!Page.IsPostBack)
        {
            //計算總共有多少記錄 
            RecordCount = CalculateRecord();
            //計算總共有多少頁   取整 
            PageCount = RecordCount / PageSize;
            if (RecordCount % PageSize > 0)
                PageCount = PageCount + 1;
            lblPageCount.Text = PageCount.ToString();
            lblRecordCount.Text = RecordCount.ToString();
            ViewState["PageCount"] = PageCount;
            CurrentPage = 0;
            ViewState["PageIndex"] = 0;
        }
        //DataList綁定 
        DataListBind();
    }
    //統計記錄數目
    public int CalculateRecord()
    {
        //聲明一個字符串
        string sConnectionString;
        //連接數據庫字符串,連接到AjaxDB數據庫,用戶名是sa
        sConnectionString = "Data Source=.;Initial Catalog= XBMIS;User ID=sa;";
        //創建SqlConnection數據庫連接對象
        SqlConnection Conn = new SqlConnection(sConnectionString);
        //打開Conn
        Conn.Open();
        int intCount;
        SqlCommand comm = new SqlCommand("SELECT count(*) as number FROM T_YongH", Conn);
        SqlDataReader dr;
        dr = comm.ExecuteReader();
        if (dr.Read())
        {
            intCount = Int32.Parse(dr["number"].ToString());
        }
        else
        {
            intCount = 0;
        }
        dr.Close();
        return intCount;
    }
    public void DataListBind()
    {
        //聲明一個字符串
        string sConnectionString;
        //連接數據庫字符串,連接到XBMIS數據庫,用戶名是sa
        sConnectionString = " Data Source=.;Initial Catalog= XBMIS;User ID=sa; ";
        //創建SqlConnection數據庫連接對象
        SqlConnection Conn = new SqlConnection(sConnectionString);
        //打開Conn
        Conn.Open();
        string sql;
        sql = "SELECT BianH, ZhuCYHM, XingM, XingB FROM T_YongH";
        //創建並初始化SqlCommand對象,同時執行sql命令
        SqlDataAdapter infor = new SqlDataAdapter(sql, Conn);
        DataSet ds = new DataSet();
        //使用SqlDataAdapter的Fill方法填充DataSet
        infor.Fill(ds, "infor");
        //GridView1控件的數據綁定
        DataList1.DataSource = ds.Tables["infor"];
        DataList1.DataBind();
        lbnNextPage.Enabled = true;
        lbnPrevPage.Enabled = true;
        if (PageCount == 0)
        {
            lblCurrentPage.Text = "0";
            lkNextPage.Enabled = false;
            lkPrevPage.Enabled = false;
        }
        else
        {
            if (CurrentPage == (PageCount - 1)) lkNextPage.Enabled = false;
            if (CurrentPage == 0) lkPrevPage.Enabled = false;
            lblCurrentPage.Text = (CurrentPage + 1).ToString();
        }
    } 
    protected void Page_OnClick(object sender, CommandEventArgs e)
    {
        CurrentPage = (int)ViewState["PageIndex"];
        PageCount = (int)ViewState["PageCount"];
        string cmd = e.CommandName;
        //判斷cmd,以判定翻頁方向 
        switch (cmd)
        {
            case "next":
                if (CurrentPage < (PageCount - 1)) CurrentPage++;
                break;
            case "prev":
                if (CurrentPage > 0) CurrentPage--;
                break;
            case "first":
                CurrentPage = 0;
                break;
            case "last":
                CurrentPage = PageCount - 1;
                break;
        }
        ViewState["PageIndex"] = CurrentPage;
        DataListBind(); 
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章