1

我已经Page1.aspx包含

Name: <asp:TextBox ID="txt1" runat="server" />

Page2.aspx尝试通过以下方式访问其内容

   TextBox txt2 = (TextBox)PreviousPage.FindControl("txt1");

但是我最终得到一个未设置为对象异常实例的对象引用

4

2 回答 2

3

我以前使用PreviousPage过,并且在网上其他地方找到的这段代码取得了成功(不记得我在哪里找到的!)

所以..

选项1:

在您的第一页上,您有可将您带到第二页的按钮,您需要将PostBackUrl属性设置为新的页面 url:

<asp:Button ID="button1" Runat="server" Text="submit" PostBackUrl="~/Page2.aspx" />

这是假设您的第一页是重定向到您的 Page2.aspx 的表单

然后在后面的新页面代码中,您需要按照以下内容编写一些内容:

public void page_load()
{
if(!IsPostBack)
{
TextBox tb = (TextBox)PreviousPage.FindControl("txt2");
Response.Write(tb.Text);}
}

txt2.Text如果您想在第二页上进行更多回发,则需要将前一页的值转移到新页面上的文本框或标签,否则您将失去该值。

选项 2:

您也可以肯定地使用 Session 变量来存储您的数据?!

Session["text"] = txt2.Text;
于 2013-05-28T04:32:15.183 回答
-2

一旦您进入新页面,最后一页可能已经消失,我建议您通过会话传输数据。

于 2013-05-28T04:45:11.967 回答