文章类型: .NET
关键词: C#,ASPX,ASP,.NET中,分页,自定义
内容摘要:

ASP.NET中的分页剖析(二)

2015/7/29 12:20:14    来源:apple    阅读:

由于控件内置的分页功能使用比较简单,在这里就不在赘述了。

首先谈一下使用ASP.NET提供的分页类PagedDataSource的用法,分页剖析(一)已经做了些介绍,这里给出具体代码帮助理解。

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 MyBookShop.BLL;

 

 

public partial class BookList : System.Web.UI.Page

{   

    protected void Page_Load(object sender, EventArgs e)

    {       

        if (!IsPostBack)

        {

            //首次加载,赋初值

            ViewState["Page"] = 0;

            ViewState["Order"] = "";

            try

            {

                ViewState["typeid"] = Convert.ToInt32(Request.QueryString["typeid"]);

            }

            catch

            {

                ViewState["typeid"] = -1;

            }

            MyDataBind();

        }    

    }

       

    private void MyDataBind()

    {

        PagedDataSource pdsBooks = new PagedDataSource();

        //对PagedDataSource 对象的相关属性赋值       

        pdsBooks.DataSource = BookManager.GetOrderedSmallBooksByCategoryId(Convert.ToInt32(ViewState["typeid"]), (string)ViewState["Order"]);

        pdsBooks.AllowPaging = true;

        pdsBooks.PageSize = 4;

        pdsBooks.CurrentPageIndex = Pager;

        lblCurrentPage.Text = "第 " + (pdsBooks.CurrentPageIndex + 1).ToString() + " 页 共 " + pdsBooks.PageCount.ToString()+" 页";

        SetEnable(pdsBooks);       

 

        //把PagedDataSource 对象赋给DataList控件

        dlBooks.DataSource = pdsBooks;

        dlBooks.DataBind();

    }

 

    /// <summary>

    /// 获得封面的url

    /// </summary>

    /// <param name="isbn"></param>

    /// <returns></returns>

    public string GetUrl(string isbn)

    {

        return StringHandler.CoverUrl(isbn);

    }

    /// <summary>

    /// 截断图书显示内容

    /// </summary>

    /// <param name="content"></param>

    /// <param name="num"></param>

    /// <returns></returns>

    public string GetCut(string content, int num)

    {

        return StringHandler.CutString(content, num);

    }

 

 

    #region  排序

    protected void btnDate_Click(object sender, EventArgs e)

    {

        ViewState["Order"] = "PublishDate";

        Pager = 0;

        btnDate.Enabled = false;

        btnPrice.Enabled = true;

        MyDataBind();

    }

    protected void btnPrice_Click(object sender, EventArgs e)

    {

        ViewState["Order"] = "UnitPrice";

        Pager = 0;

        btnPrice.Enabled = false;

        btnDate.Enabled = true;

        MyDataBind();

    }

    #endregion

 

 

 

    #region  翻页

    private void SetEnable(PagedDataSource pds)

    {

        btnPrev.Enabled = true;

        btnNext.Enabled = true;

        if (pds.IsFirstPage)

            btnPrev.Enabled = false;

 

        if (pds.IsLastPage)

            btnNext.Enabled = false;

    }

    protected void btnNext_Click(object sender, EventArgs e)

    {

        Pager++;

        MyDataBind();

    }

    protected void btnPrev_Click(object sender, EventArgs e)

    {

        Pager--;

        MyDataBind();

    }

    /// <summary>

    /// 当前页数

    /// </summary>

    private int Pager

    {

        get { return (int)ViewState["Page"]; }

        set { ViewState["Page"] = value; }

    }

    #endregion

}

    这种用法也比较简单,在此就不多说了。如果有疑问,可以给我留言解答。分页剖析()准备给大家讲下如何使用基于SQL语句进行分页。本人比较倾向于此种分页方式,首先效率高,前面已经说过原理了。【待续...

↑ 上一篇文章:ASP.NET中的分页剖析(一) 关键词:C#,ASPX,ASP,.NET中,分页 发布日期:2015/7/29 12:19:12
↓ 下一篇文章:ASP.NET中的分页剖析(三) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015/7/29 12:22:15
相关文章:
ASP.NET中的分页剖析(四) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015-07-29 12:23
ASP.NET中的分页剖析(三) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015-07-29 12:22
ASP.NET中的分页剖析(五) 关键词:C#,ASPX,ASP,.NET中,分页,自定义 发布日期:2015-07-29 12:24
相关目录:.NET软件开发ANDROID
我要评论
正在加载评论信息......