黑马程序员技术交流社区
标题:
ASP.NET:回发和跨页发送
[打印本页]
作者:
杨占伟
时间:
2012-12-3 13:09
标题:
ASP.NET:回发和跨页发送
回发:
ASP.NET页面作为代码在服务器端运行.因此,当用户在客户端对页面进行操作之后,
页面必须提交给服务器才能得到处理.页面发送到服务器,更确切地说,页面发送回其自身,
就被称为回发.
在服务器控件中,某些事件(如Click事件)会导致页面被立即发送到服务器,并且事件被
触发,这类事件被称为回发事件.而服务器控件的有些事件(如Change事件)并不会导致页面
被立即发送到服务器,而是在页面下一次发送回服务器时被触发,这类事件称为非回发事件.
有些服务器控件包含AutoPostBack属性,这表明用户可以控制是否产生回发.当设置
AutoPostBack属性为true时,控件事件会导致页面立即发送,产生回发;当设置AutoPostBack
属性为false时,控件事件并不会导致页面立即发送.
由于存在回发,因此在某些情况下,而要区分页面是第一次被请求,还是回发.例如,页面
上有一个列表框,通常希望在页面第一次被请求时,动态填充列表框中的列表项,而在回发时
不在填充列表框.对于这种情况,解决方法是使用Page类的IsPostBack属性.当IsPostBask
属性值为false时,页面是第一次被请求.通常使用以下代码,区分页面是第一次被请求还是
回发.
Protected
void
Page_Load(
object
sender,
EventArgs
e)
{
if
( !
Page
.
IsPostBack
)
{
//第一次被请求
}
else
{
//回发
}
}
跨页发送:
回发一般是回送给页面本身.若回送给另一个页面,则称作跨页发送.例如,利用多个页
面收集用户注册信息,在注册页面上需要获取多个页面的信息.在这种情况下,可以将页面
中的某些控件配置为发送至注册页面.在跨页发送中,发送的页面称为源页,发送的目的的
页面称为目标页.
通过设置控件的PostBackUrl属性为发送的目标页,可以实现跨页发送.例如:
<asp:Button
ID
= "Ok"
Runat
= "server"
Text
= "Cross Page"
PostBackurl
= "Another.aspx"/>
其中Another.aspx就是目标页.
在跨页发送中,通常需要从源页中获取信息.可以是获取源页上的控件信息,也可以是源
页的公共属性.
Page类的PreviousPage属性提供了对源页的引用,利用它可以在目标页中获取对源页的
一个引用.有了源页的引用以后,就可以使用Page类的FindControl方法,获取源页上要访问的
控件.例如:
TextBox
firstname = (
TextBox
)
PreviousPage
.
FindControl
("FirstName");
获取源页上名为FirstName的文本框.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2