Monday, June 20, 2011

To post an ASP.NET Web page to another page



  • Add a button control to your Web page, such as a Button, LinkButton, or ImageButton control.




  • Set the PostBackUrl property for the control to the URL of the page to which you want to post the ASP.NET Web page.
    The following code example illustrates a Button control that is configured to post to a page named TargetPage in the root of the Web site.





  • <asp:Button ID="Button1" PostBackUrl="~/TargetPage.aspx" runat="server" Text="Submit" />
    How To Retrieve Value On Other Page:
    a) Getting Values From Control
    if (Page.PreviousPage != null)
    {
        TextBox SourceTextBox = 
            (TextBox)Page.PreviousPage.FindControl("TextBox1");
        if (SourceTextBox != null)
        {
            Label1.Text = SourceTextBox.Text;
        }
    }
    //Getting Value from Login-Control
    Login LoginControl = (Login)PreviousPage.FindControl("Login1");
    if (LoginControl != null)
    {
        TextBox UserName = (TextBox)LoginControl.FindControl("UserName");
        if (UserName != null)
        {
            Label1.Text = UserName.Text;
        }
    }
    else
    {
        Label1.Text = "Cannot find user name in Login control.";
    }

    b) Getting Public Property Values from the Source Page

    To get public members of the source page, you must first get a strongly typed reference to the source page.
    You can do so in a number of ways. The first is to include an @ PreviousPageType directive in the target page, which allows you to specify the source page, as in this example:
    <%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %> 
    When this directive is included, the PreviousPage property is strongly typed to the class of the referenced source page. As a consequence, you can directly reference public members of the source page. You can specify the type of the source page either directly, using a type attribute, or indirectly by explicitly referencing the source page in a VirtualPath attribute, as shown in the example.
    The following code example shows a portion of a source page containing a public property named CurrentCity that exposes the value of a TextBox control named textCity.
    public String CurrentCity
    {
        get
        {
            return textCity.Text;
        }
    }
    //On Other Page
    Label1.Text = PreviousPage.CurrentCity;
    Another way to get a strongly typed reference to the source page is to include an @ Reference directive in the target page that references the source page, as you would reference any type that you wanted to use in your page. In that case, in the target page you can get the target page's PreviousPage property and cast it to the source page type, as in the following code example.

    SourcePage_aspx sourcePage;
    sourcePage = (SourcePage_aspx) PreviousPage;
    Label1.Text = sourcePage.CurrentCity;

    c) Checking for Postbacks in the Target Page

    if(PreviousPage != null)
    {
        if(PreviousPage.IsCrossPagePostBack == true)
        {
             Label1.Text = "Cross-page post.";
        }
    }
    else
    {
        Label1.Text = "Not a cross-page post.";
    }

    No comments:

    Post a Comment