跨页面传值

  默认情况下,点击Button按钮后,会回传到本页面,但是通过指定ButtonPostBackUrl属性可以把数据提交到其他页面,如在Send.aspx页面中有

<asp:TextBox ID="TxtContent" runat="server"></asp:TextBox>
<asp:Button ID="BtnSend" runat="server" Text="转页了" PostBackUrl="~/Receive.aspx" />

   点击BtnSet后将转到Receive.aspx,且可以在Receive页面按如下所示得到传递的数据

((TextBox)PreviousPage.FindControl("TxtContent")).Text,为了正常使用要先加上判断if(PreviousPage != null){   }

PreviousPage用来得到前一个页面的引用,然后用FindControl获取需要的控件。 

   还有另外一种方式,就是在Send页面中将TextBox的值封装页面属性,如

public string TxtTest
{
      
get { return TextBox2.Text; }
}

   在Receive页面中可以直接使用PreviousPage.TxtTest获取数据,不过需要在Receive.aspx页面的上方加上

<%@ PreviousPageType VirtualPath="~/WebForm1.aspx" %>指令,不然的话会报错。

PreviousPageType提供一种方法来获得上一页的强类型VirtualPath:指定前置页面的虚拟路径

 

posted @ 2010-01-08 20:34  hsrzyn  阅读(496)  评论(0编辑  收藏  举报