跨页发布

时间:2012-11-03 11:59:02

标签: c# asp.net .net vb.net c#-4.0

我只是尝试跨页面发布的例子。 我添加了1个文本框和1个按钮到default.aspx页面

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
 <asp:Button ID="Button2" runat="server" Text="Button"  PostBackUrl="~/About.aspx"/>

我已将以下代码添加到about.aspx页面的代码隐藏文件

protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.PreviousPage != null)
        {
            TextBox SourceTextBox =
                (TextBox)Page.PreviousPage.FindControl("TextBox1");
            if (SourceTextBox != null)
            {
                Label1.Text = SourceTextBox.Text;
            }
            else
                Label1.Text = "no value";
        }
        else
            Label1.Text = "no value from previous page";
    }

当我在textbox1&amp;中输入一些文字时点击按钮,它转到about.aspx但标签显示值“无值”,它没有显示textbox1的文本值,为什么这不能正常工作?

1 个答案:

答案 0 :(得分:3)

如果您有母版页,则代码Page.PreviousPage.FindControl("TextBox1");无效,因为TextBox1位于ContentPlaceHolder.下方,必须先找到ContentPlaceHolder.,然后找到{{1} }}

但是有一种最简单的方法可以获得价值:

将其放在上一页:

TextBox1

并在重定向页面上声明aspx上的上一页是什么:

public string TextFromBox1
{
    get
    {
        return TextBox1.Text;
    }
}

并在代码后面获取值为:

<%@ Reference Page ="~/PreviousPageName.aspx" %>