我在Page_Load上注册了这个
Page.ClientScript.RegisterStartupScript(this.GetType(), "clientscript", "document.getElementById('showdiv').style.visibility = 'hidden';", true);
但它没有被隐藏......我的div如下所示
<div id="showdiv">
<input class="button" type="button" value="OK" name="success_button" id="my button" onclick="javascript:window.close();" />
</div>
我做错了什么?谢谢你的帮助
答案 0 :(得分:5)
我强烈建议使用JavaScript进行这种简单的客户端操作(show / hode行控件等),或者更容易使用jQuery这样的.js库。在应用程序中包含jQuery脚本之后,只需在页面完成初始化后隐藏该DIV即可。
将此脚本部分包含在页面顶部或引用的.js文件中(如果您已有):
<script type="text/javascript">
//$(document).ready is used to define a function that is guaranteed to be called only after the DOM has been initialized.
$(document).ready(function () {
//Hide the div
$('#showdiv').hide();
//conversely do the following to show it again if needed later
//$('#showdiv').show();
});
</script>
关于此方法的jQuery API文档:
http://api.jquery.com/hide/
答案 1 :(得分:4)
为什么不使用asp:Panel
服务器代码?
前端:
<asp:Panel runat="server" ID="ShowDiv">
...
</asp:Panel>
后端:
ShowDiv.Visible = false;
Panel
控件将在运行时呈现为<div>
。这对我来说比注册客户端脚本更清晰。
答案 2 :(得分:4)
HTML
<div id="div1" runat="server"></div>
C#
div1.Visible=false;
我认为这会奏效......
答案 3 :(得分:2)
你有两个选择
1 - 将“runat = server”属性添加到div中,然后从后面的代码中访问它并使其可见性为false或添加样式以使其不可见。
myDiv.Style.Add("display","none");
2 - 添加javascript函数来隐藏它,你可以使用jquery来完成它。
答案 4 :(得分:1)
使用Javascript:
$(document).ready(function(){
$(".slidingDiv").hide();
$(".show_hide").show();
$('.show_hide').click(function(){
$(".slidingDiv").slideToggle();
});
});
HTML
<a href="#" class="show_hide">Show/hide</a>
<div class="slidingDiv">
Fill this space with really interesting content.
<a href="#" class="show_hide">hide</a>
</div>
CSS
.slidingDiv {
height:300px;
background-color: #99CCFF;
padding:20px;
margin-top:10px;
border-bottom:5px solid #3399FF;
}
.show_hide {
display:none;
}
答案 5 :(得分:1)
我来到这里寻找解决方案并最终将“runat = server”添加到我的div然后将其隐藏在代码隐藏中
myDivID.Visible = false;
答案 6 :(得分:0)
我认为这是另一个加载顺序问题。
您的脚本在加载后立即运行。如果它试图隐藏的页面元素在脚本运行时没有加载到DOM中,那么就没有什么可隐藏的了。我相信注册的脚本都会在HTML内容之前进入页面顶部,所以这将永远发生。
要使其正常工作,您必须将其置于加载事件侦听器中。请参阅:Running javascript code on page load, without using the onload tag
那就是说,既然你试图隐藏页面元素,没有条件,你可能会很高兴在服务器端关闭这个页面元素,或者通过在你的CSS中添加一个类来实现隐藏,或直接从服务器代码操纵其样式/可见性。
如果对Div是否可见存在某些条件,那么在客户端javascript中执行此操作可能会更好,因此您不必为了控制可见性而进行服务器旅行。
答案 7 :(得分:0)
我们创建链接调用javascript
<p><a href="#" class="show_hide" onclick="recoverDiv();">Mot de passe oublié</a></p>
要显示和隐藏的div
<div id="divdiv" runat="server" class="HideMe">
</div>
并在javascript中添加:
<script type="text/javascript">
function recoverDiv() {
$('#divdiv').attr('class', 'ShowMeForced');
}
</script>
和css:
<style type="text/css">
.HideMe { display:none; }
.ShowMe { display:block; }
.HideMeForced { display:none !important; }
.ShowMeForced { display:block !important; }
</style>