65.9K
CodeProject is changing. Read more.
Home

Resolving PostBackUrl and button_Click Events

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.55/5 (4 votes)

Jun 21, 2011

CPOL
viewsIcon

22678

How to execute code in the current page AFTER navigating to a new page.

I'm working on a web site that contains a button. Originally, this button had an event handler that performed some processing and then called Response.WriteFile, which in turn caused the current page to be replaced with the file being written. This was not the desired behavior, so I added a PostbackUrl element to bring up the other page in a new window. Imagine my dismay to discover that specifying a PostbackUrl causes the page to NOT fire the Click event for the button.

My workaround comprised of two steps:

  1. In the page being navigated FROM, move the code out of the event handler into a public method.
  2. In the page being navigated TO, add the following line to the Page_Load event handler:
    ((MyPreviousPage)(Page.PreviousPage)).MyPublicMethod();

    or for VB:

    CType(Page.PreviousPage, MyPreviousPage).MyPublicMethod()