ASP.NET Tutorial/Page Lifecycle/previous page

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Get previous page (C#)

   <source lang="csharp">

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="CrossPage1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>CrossPage1</title>

</head> <body>

   <form id="form1" runat="server" >
       First Name:
       <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
       
Last Name: <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>

<asp:Button runat="server" ID="cmdPost" PostBackUrl="NextPage.aspx" Text="Cross-Page Postback" />
<asp:Button runat="server" ID="cmdTransfer" Text="Manual Transfer" OnClick="cmdTransfer_Click" Visible="False" />
   </form>

</body> </html> File: Default.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 CrossPage1 : System.Web.UI.Page {

   protected void Page_Load(object sender, EventArgs e)
   {
   if (Request.QueryString["err"] != null)
     Page.Validate();
   }
 protected void cmdTransfer_Click(object sender, EventArgs e)
 {
   Server.Transfer("NextPage.aspx", true);
 }
   public string FullName
   {
       get { return txtFirstName.Text + " " + txtLastName.Text; }
   }

}

File: NextPage.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="NextPage.aspx.cs" Inherits="CrossPage2" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server" >
<asp:Label ID="lblInfo" runat="server"></asp:Label>
   </form>

</body> </html>

File: NextPage.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 CrossPage2 : System.Web.UI.Page {

   protected void Page_Load(object sender, EventArgs e)
   {
       if (PreviousPage != null)
       {
           lblInfo.Text = "You came from a page titled " +
               PreviousPage.Title + "
"; CrossPage1 prevPage = PreviousPage as CrossPage1; if (prevPage != null) { lblInfo.Text += "You typed in this: " + prevPage.FullName + "
"; } } }

}</source>


Performing Cross-Page Posts

   <source lang="csharp">

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>Button Search</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:Label
       id="lblSearch"
       Text="Search:"
       Runat="server" />
   <asp:TextBox
       id="txtSearch"
       Runat="server" />
   <asp:Button
       id="btnSearch"
       Text="Go!"
       PostBackUrl="NextPage.aspx"
       Runat="server" />
   </form>

</body> </html> File: NextPage.aspx <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">

   void Page_Load()
   {
       if (PreviousPage != null)
       {
           TextBox txtSearch = (TextBox)PreviousPage.FindControl("txtSearch");
           lblSearch.Text = String.Format("Search For: {0}", txtSearch.Text);
       }
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>Button Search Results</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:Label
       id="lblSearch"
       Runat="server" />
   </form>

</body> </html></source>


Use PreviousPage.FindControl to get a control in Previous Page (VB.net)

   <source lang="csharp">

<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>Button Search</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:Label
       id="lblSearch"
       Text="Search:"
       Runat="server" />
   <asp:TextBox
       id="txtSearch"
       Runat="server" />
   <asp:Button
       id="btnSearch"
       Text="Go!"
       PostBackUrl="NextPage.aspx"
       Runat="server" />
   </form>

</body> </html> File: NextPage.aspx

<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">

   Sub Page_Load()
       If Not IsNothing(PreviousPage) Then
           Dim txtSearch As TextBox = CType(PreviousPage.FindControl("txtSearch"), TextBox)
           lblSearch.Text = String.Format("Search For: {0}", txtSearch.Text)
       End If
   End Sub
   

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>Button Search Results</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:Label
       id="lblSearch"
       Runat="server" />
   
   </form>

</body> </html></source>