ASP教程之怎样把一个页面的数据传到另外一个页面?...
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!数据|页面resquest.querystring--用于<255的字符串session--本使用程序内用。
application--一切启动使用程序的公用。
cookies--把东东写客户端
cache--部分的使用程序不想为了重复读数据库而在必定工夫内缓存数据。
在两个ASP.NET页面之间传送值
弁言
ASP.NET供应了出色的事务驱动编程模子,闪开发者简化了使用程序的整体计划,可是这个也形成了它固有的一些成绩,比方,利用传统的ASP里,我们能够经由过程利用POST办法很简单地完成页面间传送值,一样的事变,在利用事务驱动编程模子的ASP.NET就不是那末简单了,固然了,我们仍旧有一些办法能够完成一样的功效。本文将试着利用分歧的大概的办法来办理这个成绩,但能够预感是,本文将包括利用querystring,session变量和server.Transfer办法来完成页面间的值传送。
利用QueryString
利用QuerySting在页面间传送值已是一种很老的机制了,这类办法的次要长处是完成起来十分复杂,但是它的弱点是传送的值是会显现在扫瞄器的地点栏上的(不平安),同时又不克不及传送工具,可是在传送的值少而平安性请求不高的情形下,这个办法仍是一个不错的计划。利用这类办法的步骤以下:
1,利用控件创立web表单(form)
2,创立能够前往表单的按钮和链接按钮
3,在按钮或链接按钮的单击事务里创立一个保留URL的字符变量
4,在保留的URL里增加QueryString参数
5,利用Response.Redirect重定向到下面保留的URL
上面的代码片段演示了怎样完成这个办法:
源页面代码:
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
stringurl;
url="anotherwebform.aspx?name="+TextBox1.Text+"&email="+TextBox2.Text;
Response.Redirect(url);
}
方针页面代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
Label1.Text=Request.QueryString["name"];
Label2.Text=Request.QueryString["email"];
}
利用Session变量
利用Session变量是能够在页面间传送值的的另外一种体例,在本例中我们把控件中的值存在Session变量中,然后在另外一个页面中利用它,以分歧页面间完成值传送的目标。可是,必要注重的是在Session变量存储过量的数据会损耗对照多的服务器资本,在利用session时应当稳重,固然了,我们也应当利用一些清算举措往复除一些不必要的session来下降资本的无谓损耗。利用Session变量传送值的一样平常步骤以下:
1,在页面里增加需要的控件
2,创立能够前往表单的按钮和链接按钮
3,在按钮或链接按钮的单击事务里,把控件的值增加到session变量里
4,利用Response.Redirect办法重定向到另外一个页面
5,在另外一个页面提取session的值,在断定不必要利用该session时,要显式扫除它
上面的代码片段演示了怎样完成这个办法:
源页面代码:
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
//textbox1andtextbox2arewebform
//controls
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Server.Transfer("anotherwebform.aspx");
}
方针页面代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
Session.Remove("name");
Session.Remove("email");
}
利用Server.Transfer
这个办法比拟下面先容的办法略微庞大一点,但在页面间值传送中倒是出格有效的,利用该办法你能够在另外一个页面以工具属性的体例来存取显现的值,固然了,利用这类办法,你必要分外写一些代码以创立一些属性以即可以在另外一个页面会见它,可是,这个体例带来的优点也是不言而喻的。整体来讲,利用这类办法是简便的同时又是面向工具的。利用这类办法的全部历程以下:
1,在页面里增加需要的控件
2,创立前往值的Get属性历程
3,创立能够前往表单的按钮和链接按钮
4,在按钮单击事务处置程序中挪用Server.Transfer办法转移到指定的页面
5,在第二个页面中,我们就能够利用Context.Handler属性来取得前一个页面实例工具的援用,经由过程它,就能够利用存取前一个页面的控件的值了
以下代码综合完成上述步骤历程的代码:
源页面代码:
把以下的代码增加到页面中
publicstringName
{
get
{
returnTextBox1.Text;
}
}
publicstringEMail
{
get
{
returnTextBox2.Text;
}
}
然后挪用Server.Transfer办法
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
Server.Transfer("anotherwebform.aspx");
}
方针页面代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
//createinstanceofsourcewebform
WebForm1wf1;
//getreferencetocurrenthandlerinstance
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;
}
</p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。 作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。 我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 Session:这个存储跟客户端会话过程的数据,默认20分钟失效
页:
[1]