跨页面传值
默认情况下,点击Button按钮后,会回传到本页面,但是通过指定Button的PostBackUrl属性可以把数据提交到其他页面,如在Send.aspx页面中有
<asp:TextBox ID="TxtContent" runat="server"></asp:TextBox>
<asp:Button ID="BtnSend" runat="server" Text="转页了" PostBackUrl="~/Receive.aspx" />
<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; }
}
{
get { return TextBox2.Text; }
}
在Receive页面中可以直接使用PreviousPage.TxtTest获取数据,不过需要在Receive.aspx页面的上方加上
<%@ PreviousPageType VirtualPath="~/WebForm1.aspx" %>指令,不然的话会报错。
PreviousPageType提供一种方法来获得上一页的强类型,VirtualPath:指定前置页面的虚拟路径。