在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
转:http://blog.sina.com.cn/s/blog_4a87caab010006kr.html Asp.net:DataList分页技术(1) · 技术点一: DataList分页主要用到了da.Fill方法的第一个重载方法。它的参数分别是数据集DataSet ,开始记录数StartRecord,最大的记录数MaxRecord,数据表名TableName 。如下: da.Fill(System.Data.DataSet ds ,int startRecord,int maxRecords,string srcTable) 技术点二: 要使绑定列的一列成为一个超级链接列。 HTML端代码: <%#show(DataBinder.Eval(Container.DataItem,”OrderID”))%> 后台代码一个show()的方法: public string show (object orderID) { return "<a href=WebForm2.aspx?id="+ orderID+" target='_blank'>"+orderID+" </a>"; } 第一个页面的前台代码如下: <TABLE > <TR> <TD> <FONT face="宋体">DataList分页技术和超级链接</FONT> </TD> </TR> <TR> <TD> <asp:datalist > <HeaderTemplate> 定单编号<td> 员工编号<td> 定单日期<td> 运费<td> 运往所在城市 </HeaderTemplate> <ItemTemplate> <%# show(DataBinder.Eval(Container.DataItem,"OrderID"))%> <td> <%# DataBinder.Eval(Container.DataItem,"CustomerID")%> <td> <%# DataBinder.Eval(Container.DataItem,"OrderDate")%> <td> <%# DataBinder.Eval(Container.DataItem,"Freight")%> <td> <%# DataBinder.Eval(Container.DataItem,"ShipCity")%> </ItemTemplate> </asp:datalist></TD> </TR> <TR> <TD> <asp:linkbutton ></asp:linkbutton> <asp:linkbutton ></asp:linkbutton> <asp:linkbutton ></asp:linkbutton> <asp:linkbutton ></asp:linkbutton> 总页<asp:label ></asp:label> 当前第<asp:label ></asp:linkbutton> 第<asp:textbox >页 </TD> </TR> </TABLE> Asp.net:DataList分页技术(2) · 第一个页面的后台代码如下: privatevoid Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { //每页显示12条记录 int PageSize=12; //当前显示页 intCurrentPage=0; //索引页 ViewState["PageIndex"]=0; //计算共有多少记录 int rdCount=CalculateRecord(); //计算共有多少页 int PageCount=RecordCount/PageSize; ViewState["PageCount"]=PageCount; //显示总页数 this.TotalLbl.Text=PageCount.ToString(); this.DataListBind(); } } ?/P> //计算总共有多少条记录 private int CalculateRecord() { try { int recordCount; SqlConnection con =new SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa"); con.Open(); string sql="select count(*)as count from Orders"; SqlCommand cmd = new SqlCommand(sql,con); SqlDataReader sdr = cmd.ExecuteReader(); if(sdr.Read()) { recordCount=Int32.Parse(sdr["count"].ToString()); } else { recordCount = 0; } sdr.Close(); con.Close(); return recordCount; } catch(Exception ex) { thrownew Exception(ex.Message); } }
Asp.net:DataList分页技术(3) · //以第一列定单编号做个超级链接,链接到第二页显示详细信息 publicstring show (object orderID) { return "<a href=WebForm2.aspx?; } //将数据绑定到Datalist控件 publicvoid DataListBind() { try { //设定导入的起终地址 int StartIndex = CurrentPage*PageSize; string sql = "select * from Orders"; DataSet ds = new DataSet(); SqlConnection con=new SqlConnection("server=.;database=Northwind;uid=sa;pwd="); con.Open(); SqlDataAdapter sda= new SqlDataAdapter(sql,con); sda.Fill(ds,StartIndex,PageSize,"orders"); this.DataList1.DataSource = ds.Tables["orders"].DefaultView; this.DataList1.DataBind(); this.PreviousLB.Enabled = true; this.NextLB.Enabled = true; if(CurrentPage==(PageCount-1)) { //当为最后一页时,下一页链接按钮不可用 this.NextLB.Enabled = false; } if(CurrentPage==0) { //当为第一页时,上一页按钮不可用 this.PreviousLB.Enabled = false; } //当前页数 this.CurrentLbl.Text = (CurrentPage+1).ToString(); } catch(Exception ex) { thrownew Exception(ex.Message); } } Asp.net:DataList分页技术(4) · //自己编写的按钮点击事件 public void LinkButton_Click (Object sender,CommandEventArgs e) { //获得当前页索引 int CurrentPage = (int)ViewState["PageIndex"]; //获得总页数 int PageCount = (int)ViewState["PageCount"]; string cmd = e.CommandName; switch(cmd) { case "prev"://上一页 if(CurrentPage>0) CurrentPage--; break; case "next"://下一页 if(CurrentPage<(PageCount-1)) CurrentPage++; break; case "first"://第一页 CurrentPage=0; break; case "end"://最后一页 CurrentPage=PageCount-1; break; case "jump"://跳转 if(this.TextBox1.Text.Trim()==""||Int64.Parse(this.TextBox1.Text.Trim())>PageCount) { //如果输入数字为空或超出范围则返回 return; } else { CurrentPage=Int32.Parse(this.TextBox1.Text.ToString())-1; break; } } //获得当前页 ViewState["PageIndex"] = CurrentPage; //重新将DataList绑定到数据库 this.DataListBind(); }
private void Page_Load(object sender, System.EventArgs e) { string id=Request.QueryString["id"]; SqlConnection con=new SqlConnection("server=.;database=Northwind;uid=sa;pwd="); con.Open(); SqlDataAdapter sda=new SqlDataAdapter(); sda.SelectCommand=new SqlCommand("select * from [Order Details] where OrderID='"+id+"'",con); DataSet ds=new DataSet(); sda.Fill(ds,"orders"); this.DataGrid1.DataSource=ds.Tables["orders"].DefaultView; this.DataGrid1.DataBind(); con.Close(); } |
请发表评论