ASP.NET分页组件学与用——使用篇

** ASP.NET ** ** 分页组件学与用——使用篇 ** ** **

大家好,这篇文章承启上一篇文章《 ASP.NET 分页组件学与用——教学篇 》。

在《 ASP.NET 分页组件学与用——教学篇 》中,我们讲解了分页组件的整个创建过程,那么在这一篇文章中,我们主要讨论一下如何使用该组件。

请按以下步骤操作:

1、 创建一个 WEB 应用程序工程。

2、 将上篇文章中生成的组件添加到工具箱中。如果您不知道添加的过程,请参考文章《 ASP.NET 组件编程 step by step 》

3、 在默认的 WEB 窗体页面中,切换到 HTML 视图,把下列 HTML 代码复制到

  1<form> 标签中。 
  2
  3<div align="center">
  4<center>
  5<table border="0" cellpadding="0" cellspacing="0" height="155" style="FONT-SIZE:12px" width="756">
  6<tr>
  7<td height="23" width="756"> 分页控件的使用实例  </td>
  8</tr>
  9<tr>
 10<td align="center" height="110" id="myHtml" runat="server" valign="top" width="756"></td>
 11</tr>
 12<tr>
 13<td height="22" width="756">
 14</td>
 15</tr>
 16</table>
 17</center>
 18</div>
 19
 204、  该  HTML  代码生成一个三行一列的表格,  从工具箱将控件拖到该表格的第三行中。 
 21
 225、  在  private  void  Page_Load(  object  sender, System.EventArgs e)  事件处理程序中添加如下代码: 
 23
 24int  cp; 
 25
 26if  (  this  .Request.Params[  "currentPage"  ] ==  null  ) 
 27
 28{ 
 29
 30cp = 1; 
 31
 32} 
 33
 34else 
 35
 36{ 
 37
 38cp = Convert.ToInt32(  this  .Request.Params[  "currentPage"  ]); 
 39
 40} 
 41
 42SqlConnection con =  new  SqlConnection(  "server=accp-lzh;uid=sa;pwd=sasa;database=Northwind"  ); 
 43
 44SqlCommand cmd =  new  SqlCommand(  "select * from [Order Details]"  ,con); 
 45
 46SqlDataAdapter adapter =  new  SqlDataAdapter(); 
 47
 48adapter.SelectCommand = cmd; 
 49
 50DataSet ds =  new  DataSet(); 
 51
 52con.Open(); 
 53
 54adapter.Fill(ds,  "table"  ); 
 55
 56con.Close(); 
 57
 58DataTable dt =  new  DataTable(); 
 59
 60dt = ds.Tables[  "table"  ]; 
 61
 62//以下设置控件参数 
 63
 64this  .LzhPages1.AllCount = dt.Rows.Count;  //总记录条数 
 65
 66this  .LzhPages1.CurrentPage = cp;  //当前页,从URL中读取 
 67
 68this  .LzhPages1.ShowPages = 10;  //导航数字个数 
 69
 70this  .LzhPages1.Count = 10;  //每页显示的记录条数 
 71
 72StringBuilder sql =  new  StringBuilder(); 
 73
 74//以下三个字符串最终组合成一个完整的表格<table>
 75
 76string  htmlHeader =  ""  ;  //<table>标签 
 77
 78string  htmlBody =  ""  ;  //中间有若干个<tr>标签,即行 
 79
 80string  htmlFoot =  ""  ;  //</tr></table>标签 
 81
 82sql.AppendFormat(  "select top {0} * from [Order Details] where 1=1 and OrderID not in (select top {1} OrderID from [Order Details] where 1=1 order by OrderID desc) order by OrderID desc"  ,  this  .LzhPages1.Count,  this  .LzhPages1.CurrentPage *  this  .LzhPages1.Count); 
 83
 84SqlCommand cmd1 =  new  SqlCommand(sql.ToString(),con); 
 85
 86adapter.SelectCommand = cmd1; 
 87
 88con.Open(); 
 89
 90adapter.Fill(ds,  "table1"  ); 
 91
 92con.Close(); 
 93
 94dt= ds.Tables[  "table1"  ]; 
 95
 96htmlHeader =  "<table border="1" bordercolor="#008000" bordercolordark="#FFFFFF" bordercolorlight="#008000" cellpadding="0" cellspacing="0" style="font-size:12px" width="100%">\n"  ; 
 97
 98for  (  int  i = 0;i &lt; dt.Rows.Count ;i ++) 
 99
100{ 
101
102htmlBody = htmlBody + String.Format(  "<tr>\n<td width="12%">{0}</td>\n<td width="43%">{1}</td>\n<td width="24%">{2}</td><td width="21%">{3}</td>\n</tr>\n"  ,dt.Rows[i][0].ToString(),dt.Rows[i][1].ToString(),dt.Rows[i][2].ToString(),dt.Rows[i][3].ToString()); 
103
104} 
105
106htmlFoot =  "</table>\n"  ; 
107
108this  .myHtml.InnerHtml = htmlHeader + htmlBody + htmlFoot; 
109
1106、  sql.AppendFormat(  "select top {0} * from [Order Details] where 1=1 and OrderID not in (select top {1} OrderID from [Order Details] where 1=1 order by OrderID desc) order by OrderID desc"  ,  this  .LzhPages1.Count,  this  .LzhPages1.CurrentPage *  this  .LzhPages1.Count);  此语句中的  SQL  语句就是用来分页的,我们的控件只是用来控制页面,数据还得通过  SQL  语句或存储过程读取。 
111
1127、  结果图: 
113
114![](http://dev.csdn.net/images/blog_csdn_net/lizanhong/16274/o_new_pa5.gif)</table></form>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus