G
George Wei
There are 2 pages Default.aspx and Result.aspx:
<!-- Default.aspx -->
<%@ Page Language="C#" AutoEventWireup="true"
MasterPageFile="~/Default.master" CodeFile="Default.aspx.cs"
Inherits="_Default" %>
<asp:Content ID="Content1" runat="server"
ContentPlaceHolderID="ContentPlaceHolder1">
<asp:Label ID="Label1" runat="server" Text="Please input a
string here"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button"
PostBackUrl="~/Result.aspx" /></asp:Content>
//Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
//using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
<!-- Result.aspx -->
<%@ Page Language="C#" MasterPageFile="~/Default.master"
AutoEventWireup="true" CodeFile="Result.aspx.cs" Inherits="Result"
Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
<asp:Label ID="Label1" runat="server" Text="The string you input in
the previous page is"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:Content>
//Result.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Result : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
TextBox tb = (TextBox)PreviousPage.FindControl("TextBox1");
if (tb != null)
TextBox1.Text = tb.Text;
}
}
}
Both of these 2 pages have the property MasterPageFile set, but the
contents of Default.master is not important. There are 2 controls on
Default.aspx, a TextBox named TextBox1 to accept the input, a button
named Button1 and its PostBackUrl is set to Result.aspx. While
Result.aspx is loading, it tries to get the string the user inputted in
the previous page and shows it in TextBox1.
The problem is after executing the following statement, tb is set to
null:
TextBox tb = (TextBox)PreviousPage.FindControl("TextBox1");
I tried to replace this statement with the following statements:
Content con = (Content)PreviousPage.FindControl("Content1");
if (con == null)
return;
TextBox tb = (TextBox)con.FindControl("TextBox1");
But con is null after executing, so the next statements are ignored.
How can I get TextBox1 on Default.aspx while Result.aspx is loading?
Thanks for any clues.
Regards,
George
<!-- Default.aspx -->
<%@ Page Language="C#" AutoEventWireup="true"
MasterPageFile="~/Default.master" CodeFile="Default.aspx.cs"
Inherits="_Default" %>
<asp:Content ID="Content1" runat="server"
ContentPlaceHolderID="ContentPlaceHolder1">
<asp:Label ID="Label1" runat="server" Text="Please input a
string here"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button"
PostBackUrl="~/Result.aspx" /></asp:Content>
//Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
//using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
<!-- Result.aspx -->
<%@ Page Language="C#" MasterPageFile="~/Default.master"
AutoEventWireup="true" CodeFile="Result.aspx.cs" Inherits="Result"
Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
<asp:Label ID="Label1" runat="server" Text="The string you input in
the previous page is"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:Content>
//Result.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Result : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
TextBox tb = (TextBox)PreviousPage.FindControl("TextBox1");
if (tb != null)
TextBox1.Text = tb.Text;
}
}
}
Both of these 2 pages have the property MasterPageFile set, but the
contents of Default.master is not important. There are 2 controls on
Default.aspx, a TextBox named TextBox1 to accept the input, a button
named Button1 and its PostBackUrl is set to Result.aspx. While
Result.aspx is loading, it tries to get the string the user inputted in
the previous page and shows it in TextBox1.
The problem is after executing the following statement, tb is set to
null:
TextBox tb = (TextBox)PreviousPage.FindControl("TextBox1");
I tried to replace this statement with the following statements:
Content con = (Content)PreviousPage.FindControl("Content1");
if (con == null)
return;
TextBox tb = (TextBox)con.FindControl("TextBox1");
But con is null after executing, so the next statements are ignored.
How can I get TextBox1 on Default.aspx while Result.aspx is loading?
Thanks for any clues.
Regards,
George