首页 > 编程 > .NET > 正文

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

2024-07-10 12:57:31
字体:
来源:转载
供稿:网友
asp.net分页组件学与用——使用篇



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



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



请按以下步骤操作:

1、 创建一个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"];

//以下设置控件参数

this.lzhpages1.allcount = dt.rows.count;//总记录条数

this.lzhpages1.currentpage = cp;//当前页,从url中读取

this.lzhpages1.showpages = 10;//导航数字个数

this.lzhpages1.count = 10;//每页显示的记录条数



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语句就是用来分页的,我们的控件只是用来控制页面,数据还得通过sql语句或存储过程读取。



7、 结果图:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表