传统的传值方式
1.Hyperlink
2.response.redirect()
3.server.Transfer()
5.session
6.cookie
7.application
Hyperlink:在目标上执行新要求,不要将目前网页信息传递到目标网页,需要用户启动的,并且可以导航至任意网页,可以以程序的方式建立url和查询字符串
eg:
<asp:hyperlink id="hy" runat="server" NavigateUrl='<%# "a.aspx?id="+Eval("b") %>'>aaaa</asp:hyperlink>
response.redirect():
跳转到指定的页面
eg:
response.Redirect("a.aspx?aa=" + username.text );
server.Transfer():
可以讲查询字符串传递给网页,以程序设计和动态方式,控制目标url和查询字符串。。
Cross-Page Posting
定位至于源网页位于相同的应用程序的网页,可以读取源网页的值和公共属性,但是不要按浏览器中的重新整理和上一步,这样会照成无法预期的效果
eg
source.aspx:
Cross-Page Posting.cs:
TextBox name = (TextBox)PreviousPage.FindControl("name");//非public 成员
Label1.Text = "欢迎你:" + name.Text;
previouspage本身属于page类,并且只有在来源网页和目标网页属于同一个asp.net应用程序下的时候才能引用,如果网页不是跨网页公布的目标,或者是网页在不同的应用程序之中,就不会初始化previouspage属性,就不能使用previouspage来存取任何信息
获得网页的公共属性:
source.cs:
public string UserName
{
get{return aa.text;}
}
cross-page posting.aspx:
<%@ PreviousPageType VirtualPath="~/Cross-Page Posting/Source.aspx"%>
cross-page posting.cs:
lab.text = previousopage.username;
//一个网页中只能指示一个previousPage,不然出出现编译错误