DataList分页(与Repeater控件的例子相似,都以pubs数据库中的authors为例)
2006年12月27日 星期三 10:10
DataList控件和Repeater控件的分页显示方法很相似,都是借助PagedDataSource类来实现,该类封装了DataGrid控件的分页属性.
1首先在页前代码:
<ItemTemplate> <%#DataBinder.Eval(Container.DataItem,"address")%> <%#DataBinder.Eval(Container.DataItem,"city")%> <%#DataBinder.Eval(Container.DataItem,"zip")%> </ItemTemplate>
2、然后在后台代码 private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!IsPostBack) { DataListDataBind();} }
其次定义一个数据绑定的方法
private void DataListDataBind() { SqlConnection conn=new SqlConnection(ConfigurationSettings.AppSettings["con"].ToString()); string sql="select address,city,zip from authors"; SqlDataAdapter da=new SqlDataAdapter(sql,conn); DataSet ds=new DataSet(); try { da.Fill(ds,"authors"); PagedDataSource objPage1=new PagedDataSource(); objPage1.DataSource=ds.Tables["authors"].DefaultView; objPage1.AllowPaging=true; objPage1.PageSize=5; int curPage; if(Request.QueryString["Page"]!=null) curPage=Convert.ToInt32(Request.QueryString["Page"]); else curPage=1; objPage1.CurrentPageIndex=curPage-1; this.Label2.Text="当前页:第"+curPage.ToString()+"页"; if(!objPage1.IsFirstPage) { this.HyperLink3.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(curPage-1); } if(!objPage1.IsLastPage) { this.HyperLink4.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToString(curPage+1); } this.DataList1.DataSource=objPage1; this.DataList1.DataBind(); } catch(Exception error) { Response.Write(error.ToString()); }
|