The documentation to the ScriptManager.RegisterStartupScript Method (Control, Type, String, String, Boolean) (I assume you use this overload) says:
Startup script blocks that are registered by using this method are sent to the page only when the control that is registering the block is inside an
UpdatePanel
control that is being updated.
I assume you call the ScriptManager.RegisterStartupScript
method from your user control (which has an update panel as you said). This means the first parameter of the method is not inside an UpdatePanel
control that is being updated, so the script block is not registered. So changing your script registraction to:
ScriptManager.RegisterStartupScript(
btnUpdate,
btnUpdate.GetType(),
"CloseEdit",
"CloseEditModal();",
true
);
should solve your problem. btnUpdate
here is the button inside you UpdatePanel
that caused the postback (you mention this in paragraph 2).