Can somebody explain for me what the differences are between ScriptManager and ClientScript?
ClientScript works well when I use it in Button_Clicked event, but it doesn’t work when I use it in the GridView_RowUpdated of a GridView. (The GirdView is wrapped inside an update panel). Then I tried ClientScript and it worked perfectly in this case.
You’ve pretty much identified the primary difference. The ScriptManager is meant to be used with async postbacks, which is why it works with the UpdatePanel. The ClientScript class is for synchronous postbacks. So, if you’re going to be posting back from an UpdatePanel, be sure to use the ScriptManager instead of ClientScript.
ScriptManager