YouTip LogoYouTip

Prop Webcontrol Imagebutton Postbackurl

## ASP.NET ImageButton PostBackUrl Property The **PostBackUrl** property is a powerful feature of the ASP.NET `ImageButton` control. It allows developers to perform a **cross-page postback**, redirecting the user and posting the form data to a different target page when the image button is clicked. --- ## Definition and Usage By default, when a user clicks an `ImageButton` control, the page posts back to itself (self-postback). The `PostBackUrl` property gets or sets the URL of the target page to which you want to post the form data from the current page. This is highly useful for multi-step forms, search queries, or passing user-entered data from one page to another without using query strings or session state. --- ## Syntax ```asp ``` ### Property Values | Value | Description | | :--- | :--- | | `string` | A string representing the URL of the target page for the postback. The default is an empty string (`""`), which causes the page to post back to itself. | --- ## Code Example The following example demonstrates how to set the `PostBackUrl` property on an `ImageButton` control to send form data to a target page named `TargetPage.aspx`. ### Source Page (`SourcePage.aspx`) ```asp <%@ Page Language="C#" %> YouTip - ImageButton PostBackUrl Example


``` ### Target Page (`TargetPage.aspx.cs`) To retrieve the values entered in the source page, you can use the `Page.PreviousPage` property in the code-behind of the target page: ```csharp using System; using System.Web.UI; using System.Web.UI.WebControls; public partial class TargetPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Check if the page transition was initiated by a cross-page postback if (Page.PreviousPage != null && Page.PreviousPage.IsCrossPagePostBack) { // Find the TextBox control from the source page TextBox txtName = (TextBox)Page.PreviousPage.FindControl("TextBox1"); if (txtName != null) { Response.Write("Welcome, " + Server.HtmlEncode(txtName.Text) + "!"); } } else { Response.Write("This page was not accessed via a cross-page postback."); } } } ``` --- ## Key Considerations 1. **Cross-Page Postback vs. Redirect**: Using `PostBackUrl` is different from using `Response.Redirect()`. `Response.Redirect` performs a client-side HTTP GET request to the new URL, losing the current form state. `PostBackUrl` performs an HTTP POST, transferring the entire form state (including ViewState) to the target page. 2. **Accessing Source Controls**: As shown in the example, you can access the controls of the source page using `Page.PreviousPage.FindControl("ControlID")`. For strongly-typed access, you can add the `@PreviousPageType` directive to the target `.aspx` page. 3. **Validation**: If the source page contains ASP.NET validation controls (like `RequiredFieldValidator`), the cross-page postback will only occur if the source page passes validation, unless `CausesValidation="false"` is explicitly set on the `ImageButton`.
← Prop Webcontrol Imagebutton VaProp Webcontrol Imagebutton On β†’