GetScriptReferences not called

I wrote a special control that contains the following:

[assembly: System.Web.UI.WebResource("InSysControls.AssignmentLists.AssignmentLists.js", "text/javascript")] namespace InSysControls { [ToolboxData("<{0}:AssignmentLists ID='AssignmentListsID' runat=\"server\"> </{0}:AssignmentLists>"), ParseChildren(true, "Items")] public class AssignmentLists : CompositeDataBoundControl, IScriptControl, INamingContainer { #region IScriptControl Members public IEnumerable<ScriptDescriptor> GetScriptDescriptors() { ScriptControlDescriptor descriptor = new ScriptControlDescriptor(this.GetType().FullName, this.ClientID); yield return descriptor; } public IEnumerable<ScriptReference> GetScriptReferences() { yield return new ScriptReference("InSysControls.AssignmentLists.AssignmentLists.js", "InSysControls"); } #endregion } } 

Does anyone know why neither GetScriptDescriptors nor GetScriptReferences should be called? The rest of the Control works great.

+4
source share
1 answer

You need to register the control as a ScriptControl:

 protected override void OnPreRender(EventArgs e) { if (!this.DesignMode) { // Link the script up with the script manager ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page); if (scriptManager != null) { scriptManager.RegisterScriptControl(this); } } base.OnPreRender(e); } protected override void Render(HtmlTextWriter writer) { if (!this.DesignMode) { ScriptManager.GetCurrent(this.Page).RegisterScriptDescriptors(this); } base.Render(writer); } 
+7
source

All Articles