ASP.NET分頁組件學與用——使用篇
2024-07-10 12:57:31
供稿:網(wǎng)友
 
asp.net分頁組件學與用——使用篇
 
 大家好,這篇文章承啟上一篇文章《asp.net分頁組件學與用——教學篇》。
 
 在《asp.net分頁組件學與用——教學篇》中,我們講解了分頁組件的整個創(chuàng)建過程,那么在這一篇文章中,我們主要討論一下如何使用該組件。
 
 請按以下步驟操作:
1、 創(chuàng)建一個web應用程序工程。
 
2、 將上篇文章中生成的組件添加到工具箱中。如果您不知道添加的過程,請參考文章《asp.net組件編程step by step》
 
 
3、 在默認的web窗體頁面中,切換到html視圖,把下列html代碼復制到<form>標簽中。
<div align="center">
 <center>
 <table border="0" cellpadding="0" cellspacing="0" width="756" height="155" style="font-size:12px">
 <tr>
 <td width="756" height="23">分頁控件的使用實例</td>
 </tr>
 <tr>
 <td width="756" height="110" valign="top" align="center" runat="server" id="myhtml"></td>
 </tr>
 <tr>
 <td width="756" height="22">
 </td>
 </tr>
 </table>
 </center>
 </div>
 
4、 該html代碼生成一個三行一列的表格,從工具箱將控件拖到該表格的第三行中。
 
5、 在private void page_load(object sender, system.eventargs e)事件處理程序中添加如下代碼:
int cp;
 if(this.request.params["currentpage"] == null)
 {
 cp = 1;
 }
 else
 {
 cp = convert.toint32(this.request.params["currentpage"]);
 }
 
 sqlconnection con = new sqlconnection("server=accp-lzh;uid=sa;pwd=sasa;database=northwind");
 sqlcommand cmd = new sqlcommand("select * from [order details]",con);
 sqldataadapter adapter = new sqldataadapter();
 adapter.selectcommand = cmd;
 dataset ds = new dataset();
 con.open();
 adapter.fill(ds,"table");
 con.close();
 
 datatable dt = new datatable();
 dt = ds.tables["table"];
 //以下設置控件參數(shù)
 this.lzhpages1.allcount = dt.rows.count;//總記錄條數(shù)
 this.lzhpages1.currentpage = cp;//當前頁,從url中讀取
 this.lzhpages1.showpages = 10;//導航數(shù)字個數(shù)
 this.lzhpages1.count = 10;//每頁顯示的記錄條數(shù)
 
 stringbuilder sql = new stringbuilder();
 //以下三個字符串最終組合成一個完整的表格<table>
 string htmlheader = "";//<table>標簽
 string htmlbody = "";//中間有若干個<tr>標簽,即行
 string htmlfoot = "";//</table>標簽
 
 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);
 sqlcommand cmd1 = new sqlcommand(sql.tostring(),con);
 adapter.selectcommand = cmd1;
 con.open();
 adapter.fill(ds,"table1");
 con.close();
 
 dt= ds.tables["table1"];
 htmlheader = "<table style='font-size:12px' border='1' cellpadding='0' cellspacing='0' width='100%' bordercolor='#008000' bordercolorlight='#008000' bordercolordark='#ffffff'>/n";
 
 for(int i = 0;i < dt.rows.count ;i ++)
 {
 htmlbody = 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());
 }
 htmlfoot = "</table>/n";
 
 this.myhtml.innerhtml = htmlheader + htmlbody + htmlfoot;
 
6、 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語句就是用來分頁的,我們的控件只是用來控制頁面,數(shù)據(jù)還得通過sql語句或存儲過程讀取。
 
7、 結(jié)果圖: