首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegisterStartupScript和多个控件

RegisterStartupScript和多个控件
EN

Stack Overflow用户
提问于 2009-02-18 21:03:55
回答 2查看 604关注 0票数 0

我有一个加载parentUserControl的childUserControl。parentUserControl的多个实例(例如3)被添加到主页中。

在PageLoad of parentUserControl上,我注册了JS:

代码语言:javascript
复制
ScriptManager.RegisterStartupScript(this, typeof(Page), keyJSLoadBegin, "OnParentLoad();", true);

在hte PageLoad of childUserControl上,我注册了JS:

代码语言:javascript
复制
ScriptManager.RegisterStartupScript(this, typeof(Page), keyJSLoadBegin, "OnChildLoad();", true);

当我导航到页面时,我会得到一个JS错误。导致此错误的行是(在中):

代码语言:javascript
复制
`OnParentLoad('parentA');OnChildLoad('childA');OnParentLoad('parentB');
OnParentLoad('parentC')`;OnChildLoad('childC');OnChildLoad('childB')

很明显,电话坏了。

有人知道为什么吗?

编辑:

这个问题似乎与这里的bug有关:http://support.microsoft.com/kb/817032

建议是立即注册所有相关脚本。这在我的情况下是不可能的,因为脚本在不同的用户控件中。

有人找到解决这个问题的办法了吗?

EN

回答 2

Stack Overflow用户

发布于 2009-02-18 21:08:12

ASP.NET中的控制模型旨在完全封装您的代码。每个控件应该独立于其他控件操作,而不依赖于加载顺序(理想情况下甚至不依赖于存在)。你应该重新考虑你的方法。

票数 0
EN

Stack Overflow用户

发布于 2009-02-18 21:23:14

我不明白为什么会这样,但我的看法是:

我认为您应该使用一种方法来公开子控件的脚本。在父控件中,将它们按您想要的顺序连接起来,然后在一个地方注册您的页面。

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

https://stackoverflow.com/questions/562834

复制
相关文章

相似问题

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