如何隐藏或显示div

时间:2012-06-05 18:40:42

标签: c# javascript asp.net

我在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>
我做错了什么?谢谢你的帮助

8 个答案:

答案 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>