第十六講:DataList控件(三)解決分頁問題
課程安排:
PagedDataSource類PagedDataSource類
HyperLink控件
Page_Load事件
分頁代碼分析
常用屬性:
DataSource:用於指定數據源
例如:objPage.DataSource=dv;
AllowPaging:用於設置是否允許分頁
例如:objPage.AllowPaging=true;
PageSize:用於設置一頁中能夠顯示的頁數
例如:objPage.PageSize=4;
PageCount:用於獲得總頁數
例如:int TotalPage=objPage.PageCount
CurrentPageIndex:用於設置當前頁的索引號
例如:objPage.CurrentPageIndex=2;
IsFirstPage:用於判斷當前頁是否是首頁
例如:
IsLatPage:用於判斷當前頁是否是末頁if(!objPage.IsFirstPage){}
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;