Resolving PostBackUrl and button_Click Events
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:
- In the page being navigated FROM, move the code out of the event handler into a
public
method. - 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()