5

我在我的 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>

我究竟做错了什么?。感谢您的帮助

4

8 回答 8

6

我强烈建议使用 JavaScript 或使用 .js 库(如 jQuery)更轻松地进行这种简单的客户端操作(显示/隐藏行控件等)。在您的应用程序中包含 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/

于 2012-06-05T19:38:53.873 回答
4

为什么不使用asp:Panel服务器标签?

前端:

<asp:Panel runat="server" ID="ShowDiv">
...
</asp:Panel>

后端:

ShowDiv.Visible = false;

Panel控件将<div>在运行时呈现为 a。这对我来说似乎比注册客户端脚本更干净。

于 2012-06-05T18:58:04.220 回答
4

HTML

 <div id="div1" runat="server"></div>

C#

div1.Visible=false;

我认为这会奏效...

于 2014-05-20T09:09:08.387 回答
2

你有两个选择

1-将“runat = server”属性添加到您的div,然后从后面的代码访问它并使可见性为false或添加样式以使其不可见。

myDiv.Style.Add("display","none");

2-添加javascript函数来隐藏它,你可以使用jquery来做到这一点。

于 2012-06-06T10:31:25.917 回答
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;
}
于 2012-06-06T11:06:13.987 回答
1

我来这里寻找解决方案并最终将“runat = server”添加到我的div中,然后将其隐藏在代码隐藏中

myDivID.Visible = false;

于 2013-11-01T18:45:41.663 回答
0

我认为这是另一个加载顺序问题。

您的脚本在加载后立即运行。如果它试图隐藏的页面元素在脚本运行时没有加载到 DOM 中,那么就没有什么可隐藏的了。我相信注册的脚本都进入页面顶部,在 HTML 内容之前,所以这种情况总是会发生。

为了让它工作,你必须把它放在一个加载事件监听器中。请参阅:在页面加载时运行 javascript 代码,而不使用 onload 标记

也就是说,由于您试图无条件隐藏页面元素,您可能会很高兴在服务器端关闭此页面元素,方法是向您的 CSS 隐藏的元素添加一个类,或者直接从服务器代码操作其样式/可见性。

如果应该对 Div 是否可见存在某种条件,那么在客户端 javascript 中完成这一切可能会更好,这样您就不必为了控制可见性而进行服务器访问。

于 2012-06-05T20:42:56.050 回答
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>
于 2017-07-31T11:10:19.627 回答