第十六讲: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;