gpt4 book ai didi

c# - ScriptManager 多次向页面添加脚本(重复)

转载 作者:行者123 更新时间:2023-11-30 14:03:22 24 4
gpt4 key购买 nike

这是与 this 完全相同的问题5 月的未答复。

(编辑)注意:this未答复的帖子准确描述了行为 - 在 <head> 中添加了额外的脚本由用户控件中的 ScriptManager.RegisterClientScriptBlock 在 UpdatePanel 中导致重复。 C#.NET 4.0。该页面的结构如下:

MasterPage
Page
UserControl1 (ascx) - loaded in code by Page
UpdatePanel
UserControl2 (ascx) - loaded in code by UserControl1

第一次在正文中按预期添加脚本。代码,简单地说,在 UserControl2 OnInit 中:

ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "myscript", script, true);

我也试过引用“this”而不是页面,这实际上没有意义,因为如果用户控件在页面上多次加载,我不想在页面上重复相同的脚本键,但它无论如何都没有用。

部分回发后,脚本再次添加 - 但奇怪的是在 <head>页面,而不是正文,有趣的是,缺少正常的 //<![CDATA[...//]]> asp.net 通常添加的包装器。

UserControl1 添加的另一个脚本在部分回发后以完全相同的方式复制。

有人知道为什么会这样吗?

最佳答案

您可以在再次注册之前添加检查以确认脚本是否已注册。

if (!Page.ClientScript.IsClientScriptRegistered (Page.GetType(), "myscript"))
ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "myscript", script, true);

希望对您有所帮助。

关于c# - ScriptManager 多次向页面添加脚本(重复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4346988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com