public static ScriptManager GetCurrent (Page page) {
if (page == null)
throw new ArgumentNullException ("page");
- return (ScriptManager) page.Items [ScriptManagerKey];
+ return GetCurrentInternal (page);
}
+ static ScriptManager GetCurrentInternal (Page page)
+ {
+ if (page == null)
+ return null;
+
+ return (ScriptManager) page.Items [ScriptManagerKey];
+ }
+
static void SetCurrent (Page page, ScriptManager instance) {
page.Items [ScriptManagerKey] = instance;
page.ClientScript.RegisterWebFormClientScript ();
protected override void OnInit (EventArgs e) {
base.OnInit (e);
- if (GetCurrent (Page) != null)
+ if (GetCurrentInternal (Page) != null)
throw new InvalidOperationException ("Only one instance of a ScriptManager can be added to the page.");
SetCurrent (Page, this);
public static void RegisterArrayDeclaration (Control control, string arrayName, string arrayValue) {
Page page = control.Page;
- ScriptManager sm = GetCurrent (page);
+ ScriptManager sm = GetCurrentInternal (page);
+ if (sm == null)
+ return;
+
if (sm._arrayDeclarations == null)
sm._arrayDeclarations = new List<RegisteredArrayDeclaration> ();
public static void RegisterClientScriptBlock (Control control, Type type, string key, string script, bool addScriptTags) {
Page page = control.Page;
- ScriptManager sm = GetCurrent (page);
+ ScriptManager sm = GetCurrentInternal (page);
+ if (sm == null)
+ return;
+
RegisterScript (ref sm._clientScriptBlocks, control, type, key, script, null, addScriptTags, RegisteredScriptType.ClientScriptBlock);
if (!sm.IsInAsyncPostBack)
public static void RegisterClientScriptInclude (Control control, Type type, string key, string url) {
Page page = control.Page;
- ScriptManager sm = GetCurrent (page);
+ ScriptManager sm = GetCurrentInternal (page);
+ if (sm == null)
+ return;
+
RegisterScript (ref sm._clientScriptBlocks, control, type, key, null, url, false, RegisteredScriptType.ClientScriptInclude);
if (!sm.IsInAsyncPostBack)
public static void RegisterExpandoAttribute (Control control, string controlId, string attributeName, string attributeValue, bool encode) {
Page page = control.Page;
- ScriptManager sm = GetCurrent (page);
+ ScriptManager sm = GetCurrentInternal (page);
+ if (sm == null)
+ return;
+
if (sm._expandoAttributes == null)
sm._expandoAttributes = new List<RegisteredExpandoAttribute> ();
public static void RegisterHiddenField (Control control, string hiddenFieldName, string hiddenFieldInitialValue) {
Page page = control.Page;
- ScriptManager sm = GetCurrent (page);
+ ScriptManager sm = GetCurrentInternal (page);
+ if (sm == null)
+ return;
+
if (sm._hiddenFields == null)
sm._hiddenFields = new List<RegisteredHiddenField> ();
public static void RegisterOnSubmitStatement (Control control, Type type, string key, string script) {
Page page = control.Page;
- ScriptManager sm = GetCurrent (page);
+ ScriptManager sm = GetCurrentInternal (page);
+ if (sm == null)
+ return;
+
RegisterScript (ref sm._onSubmitStatements, control, type, key, script, null, false, RegisteredScriptType.OnSubmitStatement);
if (!sm.IsInAsyncPostBack)
RegisterScriptDescriptors ((Control) scriptControl, scriptControl.GetScriptDescriptors ());
}
- void RegisterScriptDescriptors (Control control, IEnumerable<ScriptDescriptor> scriptDescriptors) {
+ void RegisterScriptDescriptors (Control control, IEnumerable<ScriptDescriptor> scriptDescriptors)
+ {
if (scriptDescriptors == null)
return;
}
else
sb.AppendLine ("Sys.Application.add_init(function() {");
+ sb.Append ("\t");
sb.AppendLine (scriptDescriptor.GetScript ());
sb.AppendLine ("});");
}
public static void RegisterStartupScript (Control control, Type type, string key, string script, bool addScriptTags) {
Page page = control.Page;
- ScriptManager sm = GetCurrent (page);
+ ScriptManager sm = GetCurrentInternal (page);
+ if (sm == null)
+ return;
+
RegisterScript (ref sm._startupScriptBlocks, control, type, key, script, null, addScriptTags, RegisteredScriptType.ClientStartupScript);
if (!sm.IsInAsyncPostBack)