C# 跨页投递
我只是在尝试跨页面发布的例子。 我在default.aspx页面中添加了1个文本框和1个按钮C# 跨页投递,c#,asp.net,.net,vb.net,c#-4.0,C#,Asp.net,.net,Vb.net,C# 4.0,我只是在尝试跨页面发布的例子。 我在default.aspx页面中添加了1个文本框和1个按钮 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button2" runat="server" Text="Button" PostBackUrl="~/About.aspx"/> protected void Page_Load(object sender, Ev
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button2" runat="server" Text="Button" PostBackUrl="~/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中输入一些文本并单击按钮时,它会转到about.aspx,但标签显示值“no value”,它没有显示textbox1的文本值,为什么不能正常工作?如果您有母版页,则代码
页.PreviousPage.FindControl(“textbox1”)代码>无效,因为文本框1
位于内容占位符下。
必须首先找到内容占位符。
然后找到文本框1
但有一种最简单的方法可以获得如下值:
if (Page.PreviousPage != null)
{
if (Page.PreviousPage is PreviousPageClassName)
{
Label1.Text = ((PreviousPageClassName)Page.PreviousPage).TextFromBox1;
}
else
{
Label1.Text = "no value";
}
}
else
Label1.Text = "no value from previous page";
将其放在上一页:
public string TextFromBox1
{
get
{
return TextBox1.Text;
}
}
在重定向页面上,将aspx上的上一页声明为:
<%@ Reference Page ="~/PreviousPageName.aspx" %>
我刚刚做了一个很好的例子!所以,也许你会使用和母版页@亚里士多德:是的,我添加了母版页网站。母版页这就是为什么,上一页是母版页,在那里你必须找到内容,然后是控件。@亚里士多德:没有什么,它只是偶然发生的,你的答案是正确的&我测试过了,并且工作正常。在没有母版页的情况下,您的代码可以正常工作,但在母版页上,这就是方法。