Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ClientScript.RegisterClientScriptBlock之后显示/隐藏div折叠面板_C#_Asp.net_Html - Fatal编程技术网

C# 在ClientScript.RegisterClientScriptBlock之后显示/隐藏div折叠面板

C# 在ClientScript.RegisterClientScriptBlock之后显示/隐藏div折叠面板,c#,asp.net,html,C#,Asp.net,Html,这个问题是对这个问题的延伸 如上所述,我找到了一个解决办法,以防止在装载时折叠面板闪烁 我的解决办法是: 在标题中: 它不工作-因为在面板中没有折叠/显示。上面的代码确实有效 你认为clientScipt与我的javascript冲突以显示div吗?我在浏览器中没有收到任何Javascript运行错误 更多信息:如果不是回发,则调用clientScript。我还尝试从clientscript调用javascript,方法是在其末尾添加以下代码: sb.Append("\n}\nshowDivs

这个问题是对这个问题的延伸

如上所述,我找到了一个解决办法,以防止在装载时折叠面板闪烁

我的解决办法是:

在标题中:

它不工作-因为在面板中没有折叠/显示。上面的代码确实有效

你认为clientScipt与我的javascript冲突以显示div吗?我在浏览器中没有收到任何Javascript运行错误

更多信息:如果不是回发,则调用clientScript。我还尝试从clientscript调用javascript,方法是在其末尾添加以下代码:

sb.Append("\n}\nshowDivs();</script>\n");
sb.Append(“\n}\n showdivs();\n”);
但这次我得到了以下错误:

divmenucont未定义


有什么解决方案吗?

如果我没记错的话,RegisterClientScriptBlock将其JS注入头部。可能是将其注入到代码之上。现在,这可能意味着一些事情,取决于注入的代码正在做什么

  • 它是否直接引用了任何元素(请记住,这是在头部,因此您将无法处理DOM,因为它已经加载了它,所有这些内容都需要在onload之后进行)
  • 它是否引用了divMenuContent,而您可能只是在它下面声明
  • 它是否抛出了一个错误,导致inpage JS的其余部分停止运行
在Firefox中使用firebug来仔细检查您是否没有收到任何有趣的JS错误,并查看源代码,并仔细检查您是否在应该引用之前没有尝试引用任何内容

另外,我建议您考虑使用一个JS框架,允许您连接多个onload事件,这样您就不会冒着过度编写任何以前附加的事件的风险。这允许您在页面加载时运行多个函数(或者更好,或者在DOM加载时更快)。我建议您使用MooTools,在这种情况下,您可以这样做

// You can add as many of these as you like and they will all run :)
window.addEvent( "domready", function() {
  // Code to run goes here
});

您可以使用RegisterStartupScript来满足这种需求。

好的,我想我可能有一个解决方案:我该怎么做:if(cpeMenuContent.Collapsed){};在javascript中(因为cpeMenuContent是一个可折叠的PanelExtender)?pnlmenucontent与:Page.RegisterClientScriptBlock(“,sb.ToString());RegisterClientScriptBlock(this.GetType(),“”,sb.ToString());RegisterStartupScript(this.GetType(),“”,sb.ToString());为了我想做的事
ClientScript.RegisterClientScriptBlock(this.GetType(), "", sb.ToString());
sb.Append("\n}\nshowDivs();</script>\n");
// You can add as many of these as you like and they will all run :)
window.addEvent( "domready", function() {
  // Code to run goes here
});