ASP.NET動態網站開發培訓-16.DataList控制元件(三)

人生不再重來發表於2014-11-04

第十六講:DataList控制元件(三)解決分頁問題

課程安排:

PagedDataSource類

HyperLink控制元件

Page_Load事件

分頁程式碼分析


PagedDataSource類

常用屬性:

DataSource:用於指定資料來源

例如:objPage.DataSource=dv;


AllowPaging:用於設定是否允許分頁

例如:objPage.AllowPaging=true;


PageSize:用於設定一頁中能夠顯示的頁數

例如:objPage.PageSize=4;


PageCount:用於獲得總頁數

例如:int TotalPage=objPage.PageCount


CurrentPageIndex:用於設定當前頁的索引號

例如:objPage.CurrentPageIndex=2;


IsFirstPage:用於判斷當前頁是否是首頁

例如:

if(!objPage.IsFirstPage){}


IsLatPage:用於判斷當前頁是否是末頁


HyperLink控制元件

用於顯示上一頁,下一頁字樣,並實現功能。

NavigateUrl:用於設定單擊超連結時,跳轉到的網頁地址。

例如:InkFirst.NavigateUrl="Default.aspx?Page=1";


實現分頁上一頁下一頁的思路:

在Page_Load加入程式碼:

        int curPage=0;
        curPage = Convert.ToInt32(Request.QueryString["Page"]);
        if (curPage==0)
        {
            curPage = 1;
        }

        lnkPrev.NavigateUrl = "Default.aspx?Page=" + Convert.ToString(curPage - 1);
        lnkNext.NavigateUrl = "Default.aspx?Page=" + Convert.ToString(curPage+1);

        objPage.CurrentPageIndex = curPage-1;

若當前頁為第一頁時,不顯示上一頁,當前頁為最後一頁是地,不顯示下一頁。

        objPage.CurrentPageIndex = curPage-1;

        if (objPage.IsFirstPage)
            lnkPrev.Visible = false;
        else
            lnkPrev.Visible = true;

        if (objPage.IsLastPage)
            lnkNext.Visible = false;
        else
            lnkNext.Visible = true;


Page_Load事件

頁面載入時發生的事件。


分頁程式碼分析

    protected void Page_Load(object sender, EventArgs e)
    {
        //建立一個SqlDzataSource類的物件sds
        SqlDataSource sds = new SqlDataSource();
        //給sds的SelectCommand屬性設定Select語句
        sds.SelectCommand = "SELECT * FROM [產品表]";
        //將資料庫連線字串提取出來,賦值給sds的ConnectionString的屬性
        //這樣以來,sds就和MyDB資料庫連線上了。
        sds.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionSTring"].ConnectionString;

        //執行select語句,並將查詢結果轉換為DataView,並賦值給dv物件。
        DataView dv = (DataView)sds.Select(DataSourceSelectArguments.Empty);

        //建立一個PagedDataSource類物件objPage
        PagedDataSource objPage = new PagedDataSource();

        //設定objPage物件的資料來源為dv
        objPage.DataSource = dv;
        //允許objPage分頁
        objPage.AllowPaging = true;
        //將每頁能夠顯示的專案數,設定為4
        objPage.PageSize = 4;
        //將當前頁,設定為第2頁
        //因為第1頁的索引號為0
        objPage.CurrentPageIndex = 1;

        DataList1.DataSource = objPage;
        DataList1.DataBind();        

    }


IsPostBack,在點選頁面按鈕、點選有PostBack屬性的值是IsPostBack。返回值為True,第一次進入則為False;

相關文章