Asp.net 为什么Javascript代码不';不能在用户控制中运行?

Asp.net 为什么Javascript代码不';不能在用户控制中运行?,asp.net,javascript,updatepanel,Asp.net,Javascript,Updatepanel,我正在做一个只包含一个页面的项目(home.aspx) Home.aspx包含一个ScriptManager和一个UpdatePanel—一个带有一些链接按钮的div,用于加载相关的用户控件 其中一些用户控件包含javascript。我的问题是javascript没有按时运行(在单击LinkButton或加载UC之后) 如何解决此问题?确保您的脚本已注册到。确保您的脚本已注册到。如果用户控件具有JS内联,则它将不会运行;通过设置元素的innerHTML添加的JavaScript(这是Update

我正在做一个只包含一个页面的项目(home.aspx)

Home.aspx包含一个ScriptManager和一个UpdatePanel—一个带有一些链接按钮的div,用于加载相关的用户控件

其中一些用户控件包含javascript。我的问题是javascript没有按时运行(在单击LinkButton或加载UC之后)


如何解决此问题?

确保您的脚本已注册到。

确保您的脚本已注册到。

如果用户控件具有JS内联,则它将不会运行;通过设置元素的innerHTML添加的JavaScript(这是
UpdatePanel
所做的)不会运行


正如Rick Schott提到的,如果用户控件向
ScriptManager
注册其脚本-在其
ScriptManagerProxy
中包含
asp:ScriptReference
或使用
ScriptManager.register*
变体之一从其代码隐藏中添加脚本-它将运行。

如果用户控件具有JS内联,它不会运行;通过设置元素的innerHTML添加的JavaScript(这是
UpdatePanel
所做的)不会运行


正如Rick Schott提到的,如果用户控件在
ScriptManager
中注册脚本,可以通过在
ScriptManagerProxy
中包含
asp:ScriptReference
或使用
ScriptManager.register*
变体从其代码隐藏中添加脚本,脚本将运行。

感谢您的回答,但我已经研究了这个解决方案。 用户控件没有脚本管理器,脚本管理器放在Home.aspx中。 我同时使用Page.RegisterClientScriptBlock、Page.RegisterStartupScript、。。。 但这些都不能正常工作。UC中的Java脚本代码位于UC顶部的脚本标记中,如下所示:

                   function pageLoad() {
   $addHandler($get("<%=Button2.ClientID%>"), 'click', cp);

}

//*################JAVASCRIPT代码结束

在上面的JS代码中,Button2是放置在UC中的asp按钮。 今天我发现了一个新东西:如果在上面的脚本标签中添加defer='defer',它会像一个符咒一样运行! 但是这个解决方案只适用于IE,所以这不是最好的解决方案。
我还能做什么…?

谢谢你的回答,但我已经研究了这个解决方案。 用户控件没有脚本管理器,脚本管理器放在Home.aspx中。 我同时使用Page.RegisterClientScriptBlock、Page.RegisterStartupScript、。。。 但这些都不能正常工作。UC中的Java脚本代码位于UC顶部的脚本标记中,如下所示:

                   function pageLoad() {
   $addHandler($get("<%=Button2.ClientID%>"), 'click', cp);

}

//*################JAVASCRIPT代码结束

在上面的JS代码中,Button2是放置在UC中的asp按钮。 今天我发现了一个新东西:如果在上面的脚本标签中添加defer='defer',它会像一个符咒一样运行! 但是这个解决方案只适用于IE,所以这不是最好的解决方案。
我还能做什么…?

请发布相关代码请发布相关代码ScriptManager。Register*是静态的。如果用户控件位于具有ScriptManager(UpdatePanel必需)的页面中,则它将找到它。ScriptManager.Register*是静态的。如果用户控件位于具有ScriptManager(UpdatePanel所需)的页面中,则它将找到它。