如何隐藏或显示div
我在我的Page_Load上注册了这个
Page.ClientScript.RegisterStartupScript(this.GetType(), "clientscript", "document.getElementById('showdiv').style.visibility = 'hidden';", true);
但它没有被隐藏……我的div如下所示
我究竟做错了什么?。 谢谢您的帮助
我强烈建议使用JavaScript进行这种简单的客户端操作(show / hode行控件等),或者更容易使用jQuery这样的.js库。 在应用程序中包含jQuery脚本之后,只需在页面完成初始化后隐藏该DIV即可。
如果您已经有一个脚本部分,请将此脚本部分包含在页面顶部或引用的.js文件中:
关于此方法的jQuery API文档:
http://api.jquery.com/hide/
为什么不使用asp:Panel
服务器标签?
前端:
...
后端:
ShowDiv.Visible = false;
Panel
控件将在运行时呈现为
。 这对我来说比注册客户端脚本更清晰。
HTML
C#
div1.Visible=false;
我认为这会奏效……
你有2个选择
1 – 将“runat = server”属性添加到div中,然后从代码后面访问它并使可见性为false或添加样式以使其不可见。
myDiv.Style.Add("display","none");
2 – 添加javascript函数来隐藏它,你可以使用jquery来做它。
使用Javascript:
$(document).ready(function(){ $(".slidingDiv").hide(); $(".show_hide").show(); $('.show_hide').click(function(){ $(".slidingDiv").slideToggle(); }); });
HTML
Show/hide Fill this space with really interesting content. hide
CSS
.slidingDiv { height:300px; background-color: #99CCFF; padding:20px; margin-top:10px; border-bottom:5px solid #3399FF; } .show_hide { display:none; }
我来到这里寻找解决方案,最后将“runat = server”添加到我的div然后将其隐藏在代码隐藏中
myDivID.Visible = false;
我认为这是另一个加载顺序问题。
您的脚本在加载后立即运行。 如果它试图隐藏的页面元素在脚本运行时没有加载到DOM中,那么就没有什么可隐藏的了。 我相信注册的脚本都会在HTML内容之前进入页面顶部,所以这将永远发生。
要使其工作,您必须将其放在加载事件侦听器中。 请参阅: 在页面加载时运行javascript代码,而不使用onload标记
也就是说,既然你试图隐藏页面元素,没有条件,你可能会很高兴在服务器端关闭这个页面元素,或者通过在CSS隐藏的元素中添加一个类,或者直接从服务器代码处理其样式/可见性。
如果假设Div是否可见会有一些条件,那么在客户端javascript中完成所有操作可能会更好,因此您不必为了控制可见性而进行服务器访问。