首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScriptControl WebResource加载顺序

ScriptControl WebResource加载顺序
EN

Stack Overflow用户
提问于 2012-11-13 23:59:01
回答 1查看 435关注 0票数 3

我正在向一个具有一些ASP.Net控件的项目中添加一个新控件。每个控件本质上由一个.Net类(继承ScriptControl)和一个javascript文件组成。每个js文件都作为WebResource添加到程序集中。

代码语言:javascript
复制
[assembly: WebResource("Assembly.Namespace.WidgetControl.js", "text/javascript")]
[assembly: WebResource("Assembly.Namespace.CogControl.js", "text/javascript")]

我想从另一个javascript资源中的一个" class“继承其他控件,因为否则我就需要从js类中复制/粘贴一些函数代码,因为我想从这个js类中继承一些难看的、难看的、难看的维护代码。我不喜欢重复的工作。

现在,我所追求的是WebResource加载顺序。假设,出于演示的目的,我想继承WidgetControl.js中的类并用ThingaMahBobControl.js扩展它。在窗口小部件之后添加ThingaMahBob的WebResource程序集引用能保证加载顺序吗?

我不能继承还没有加载的东西,所以这是至关重要的。因为控件继承了抽象的ScriptControl,所以它必须实现GetScriptReferences(),所以以期望的顺序返回引用的可枚举集合是否有效?即:

代码语言:javascript
复制
protected override IEnumerable<ScriptReference> GetScriptReferences()
{
    List<ScriptReference> refs = new List<ScriptReference>();
    refs.Add(new ScriptReference("Assembly.Namespace.WidgetControl.js", this.GetType().Assembly.FullName));
    refs.Add(new ScriptReference("Assembly.Namespace.ThingaMahBobControl.js", this.GetType().Assembly.FullName));
    return refs;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-14 03:20:31

是的,这将会起作用。如果在GetScriptReferences中,您将指定控件所需的脚本引用的完整集合,那么这将会起作用。注意:脚本管理器不会添加重复的脚本引用。但这里的要点是,您需要指定您的控件所依赖的脚本的完整集合。

我还建议研究一下它在Ajax控件工具包中的实现方式(例如,在Telerik ASP.NET Ajax控件中也使用了同样的方法)。存在现有的ClientScriptResource和RequiredScript属性以及帮助解决此类排序问题的ScriptObjectBuilder帮助器类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13364109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档