Asp.NetPageDataSourceページング

11754 ワード

 :        (  System.Web.UI.WebControls.DataGrid、System.Web.UI.WebControls.GridView、System.Web.UI.WebControls.DetailsView

    //       System.Web.UI.WebControls.FormView)         ,            。      。

DataList

public DataTable GetDataSet(string sql)

    {

        SqlConnection conn = this.getconn();

        SqlDataAdapter sdr = new SqlDataAdapter(sql, conn);

        DataSet rs = new DataSet();

        sdr.Fill(rs);

        return rs.Tables[0];

    }

    public PagedDataSource PageDataListBind(string sql, int currentPage, int PageSize)

    {

        PagedDataSource pds = new PagedDataSource();

        pds.DataSource = GetDataSet(sql).DefaultView;

        pds.AllowPaging = true;

        pds.PageSize = PageSize;

        pds.CurrentPageIndex = currentPage - 1;

        return pds;

    }

 

 

DB db = new DB();

    PagedDataSource pds = new PagedDataSource();

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

           

            bind();

        }

    }



    public void bind()

    {

        pds = db.PageDataListBind("select * from tb_word",Convert.ToInt32(lblCurrentPage.Text),2);   

        lnkBtnFirst.Enabled = true;

        lnkBtnLast.Enabled = true;

        lnkBtnPrevious.Enabled = true;

        lnkBtnNext.Enabled = true;

        if (lblCurrentPage.Text == "1")

        {

            lnkBtnFirst.Enabled = false;

            lnkBtnPrevious.Enabled = false;

        }

        if(lblCurrentPage.Text==pds.PageCount.ToString())

        {

            lnkBtnLast.Enabled = false;

            lnkBtnNext.Enabled = false;

        }

        lblSumPage.Text = pds.PageCount.ToString();

        DataList1.DataSource = pds;

        DataList1.DataKeyField = "ID";

        DataList1.DataBind();

    }

   

    protected void lnkBtnFirst_Click(object sender, EventArgs e)

    {

        lblCurrentPage.Text = "1";

        bind();

    }

    protected void lnkBtnPrevious_Click(object sender, EventArgs e)

    {

        lblCurrentPage.Text = (Convert.ToInt32(lblCurrentPage.Text) - 1).ToString();

        bind();

    }

    protected void lnkBtnNext_Click(object sender, EventArgs e)

    {

        lblCurrentPage.Text = (Convert.ToInt32(lblCurrentPage.Text) + 1).ToString();

        bind();

    }

    protected void lnkBtnLast_Click(object sender, EventArgs e)

    {

        lblCurrentPage.Text = lblSumPage.Text;

        bind();

    }

 

<form id="form1" runat="server">

    <div>

        <asp:DataList ID="DataList1" runat="server">

        <ItemTemplate>

            <table border="1">

                <tr>

                    <td>ID</td><td>  </td><td>  </td>

                </tr>

                <tr>

                    <td><%#Eval("ID") %></td>

                    <td><%#Eval("Title") %></td>

                    <td><%#Eval("Content") %></td>

                </tr>

            </table>

        </ItemTemplate>

        </asp:DataList><asp:Label ID="lblCurrentPage" runat="server" Text="1"></asp:Label>] 

                   [<asp:Label

                    ID="lblSumPage" runat="server" Text="0"></asp:Label><asp:LinkButton ID="lnkBtnFirst" runat="server" Font-Underline="False" OnClick="lnkBtnFirst_Click" >     </asp:LinkButton>

                <asp:LinkButton ID="lnkBtnPrevious" runat="server" Font-Underline="False" OnClick="lnkBtnPrevious_Click" >     </asp:LinkButton>

                <asp:LinkButton ID="lnkBtnNext" runat="server" Font-Underline="False" OnClick="lnkBtnNext_Click" >     </asp:LinkButton>

                <asp:LinkButton ID="lnkBtnLast" runat="server" Font-Underline="False" OnClick="lnkBtnLast_Click">     </asp:LinkButton>

    </div>

    </form>

転載先:http://blog.sina.com.cn/s/blog_83a4857e01011tyw.html