F
Froefel
One of my web pages is a page that allows the user to create or modify
a project definition. It displays a feedback message when you've
performed certain actions that causes the page to post back to itself
(similar to Gmail's feedback messages). For instance, when you select
several items from a gridview (using a checkbox field) and click a
"Delete selected projects" link, I would display a message "5 projects
were deleted." Wrapped in some Ajax, this is performing very smoothly.
This same page can be used in 2 modes: "new" mode and "edit" mode.
When creating a new project, the url is "CreateEditProject.aspx";
when in edit mode the url is "CreateEditProject.aspx?
mode=edit&pid=25", where pid is the ID of the project to be edited. On
Page_Load I evaluate the QueryString and either do nothing or load an
existing project and change some things on the page, such as changing
the title from "Create New Project" to "Edit Project".
When you load an existing project and click a "Save this project"
link, the lnkSaveProject_Click() function is called, which saves the
project, sets the feedback messages and displays the same page. The
feedback message is displayed properly. Great!
Now here's where the feedback message doesn't work anymore: when you
start off with a new project and click the "Save this project" link,
the lnkSaveProject_Click() function is called, which saves the new
project, sets the feedback messages and then does a
Response.Redirect("\CreateEditProject.aspx?mode=edit&pid=25") to
render the same page in edit mode for the newly created project (with
ID=25).
The page renders fine, however the feedback message is not displayed.
I have a feeling that this has something to do with the viewstate,
where setting a property on a page that's auto-posted back to itself
is stored in the viewstate and sent along to the client for rendering.
If a Response.Redirect(url) is performed, then the viewstate of the
url page is initially empty. The property change that happened by
setting the feedback message was discarded when calling the
Response.Redirect. Am I thinking correctly about this?
So my question is, how can I display the feedback message when going
from the "new" mode to the "edit" mode?
Any help is greatly appreciated.
-- Hans
a project definition. It displays a feedback message when you've
performed certain actions that causes the page to post back to itself
(similar to Gmail's feedback messages). For instance, when you select
several items from a gridview (using a checkbox field) and click a
"Delete selected projects" link, I would display a message "5 projects
were deleted." Wrapped in some Ajax, this is performing very smoothly.
This same page can be used in 2 modes: "new" mode and "edit" mode.
When creating a new project, the url is "CreateEditProject.aspx";
when in edit mode the url is "CreateEditProject.aspx?
mode=edit&pid=25", where pid is the ID of the project to be edited. On
Page_Load I evaluate the QueryString and either do nothing or load an
existing project and change some things on the page, such as changing
the title from "Create New Project" to "Edit Project".
When you load an existing project and click a "Save this project"
link, the lnkSaveProject_Click() function is called, which saves the
project, sets the feedback messages and displays the same page. The
feedback message is displayed properly. Great!
Now here's where the feedback message doesn't work anymore: when you
start off with a new project and click the "Save this project" link,
the lnkSaveProject_Click() function is called, which saves the new
project, sets the feedback messages and then does a
Response.Redirect("\CreateEditProject.aspx?mode=edit&pid=25") to
render the same page in edit mode for the newly created project (with
ID=25).
The page renders fine, however the feedback message is not displayed.
I have a feeling that this has something to do with the viewstate,
where setting a property on a page that's auto-posted back to itself
is stored in the viewstate and sent along to the client for rendering.
If a Response.Redirect(url) is performed, then the viewstate of the
url page is initially empty. The property change that happened by
setting the feedback message was discarded when calling the
Response.Redirect. Am I thinking correctly about this?
So my question is, how can I display the feedback message when going
from the "new" mode to the "edit" mode?
Any help is greatly appreciated.
-- Hans