GetScriptReferences不会被调用

我编写了一个包含以下内容的自定义控件:

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

有谁知道不应该调用GetScriptDescriptors或GetScriptReferences的原因? Control的其他部分工作得很好。

您需要将控件注册为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); }