你的位置:首页 > ASP.net教程

[ASP.net教程]ASP.NET 跨页面传值


  之前一直解决这个问题的办法就是Session保存数据,然后在下个页面中读取数据,今天恰巧在书上看到了一个比较好的办法,特此做个小笔记。


新建两个页面asp1.aspx及asp2.aspx 

asp1界面上有一个TextBox控件及一个Button按钮。

asp2界面上有一个Lable控件

注意Button按钮并没有添加点击事件,而是通过PostBackUrl属性指定窗体将要提交给的页面:

1 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>2 <asp:Button ID="Button1" runat="server" PostBackUrl="~/测试/asp2.aspx" Text="跨页面传值"/>

接下来只需要在asp2页面中实例化你需要取得数据的成员就可以访问窗体中例如某个控件的值了:

 1   protected void Page_Load(object sender, EventArgs e) 2   { 3     if (PreviousPage!=null&&PreviousPage.IsCrossPagePostBack) 4     { 5       TextBox pp1 =(TextBox)PreviousPage.FindControl("TextBox1"); 6       Label1.Text = pp1.Text; 7     } 8     else 9     {10       Response.Redirect("asp1.aspx");11     }12     13   }

注意其中的 PreviousPage.IsCrossPagePostBack 它可以确定该页面加载时是否来自其他页面传入。