0

我有一个自定义控件,它显示一些操作的结果。

它默认是隐藏的,并且在其他类的代码隐藏中可见。

现在我想在一段时间后隐藏它。我该怎么做?

编辑:

一些答案建议在自定义控件的末尾添加以下 javascript 块,如果在自定义控件上使用该块将不起作用Visible="false"

但我没有说得足够清楚,所以接受了这个作为答案。
必须看看:如何从代码隐藏调用javascript函数

如果使用超时函数,则正确调用Visible="true"

ASPX:

<control id="customControl" runat="server" Visible="false"/>

如果Visible="true"在标记中使用解决方案:

自定义控件 - ASPX:

<div id="body">
    <!-- custom control -->
</div>
<script type="text/javascript">     
    window.setTimeout(function() { document.getElementById('<%=Me.divBody.ClientID%>').style.display = 'none'; }, 2000);
</script>

自定义控件 - 代码隐藏:

Me.customControl.Visible = True

如果Visible="false"在标记中使用解决方案:
从一开始脚本块不呈现,以后不自动添加。所以我们需要注册它。

自定义控件 - ASPX:

<div id="divBody">
    <!-- custom control -->
</div>
<script type="text/javascript">     
    window.setTimeout(function(){ alert("test"); });         
</script>

自定义控件 - 代码隐藏:

Me.customControl.Visible = True
Dim hideScript AS String = "window.setTimeout(function() { document.getElementById('" & Me.divBody.ClientID & "').style.display = 'none'; }, 2000);"
ScriptManager.RegisterClientScriptBlock(Me.Page, Me.GetType, "script", hideScript, True)

来源: http: //www.codeproject.com/Tips/85960/ASP-NET-Hide-Controls-after-number-of-seconds

4

4 回答 4

0

如果您在规定的时间范围之外,您可以在对象上拥有一个属性,当执行时将可见属性更改为 false,因此您将有一个可见的 from 和 until 字段,并与当前时间相比生成一个布尔值.

于 2012-07-02T14:26:13.327 回答
0

您可能可以使用 javascriptsetTimeout函数执行一些代码来隐藏具有用户控件的 div 在一段时间后隐藏

<div id="divUserControlContainer">
 //put your user control embed code here
</div>

<script type="text/javascript">
$(function(){

    window.setTimeout(function() {  
         $("#divUserControlContainer").hide();
    }, 2000);

});
</script>
于 2012-07-02T14:28:46.733 回答
0

您可以通过简单的 JQuery 方法来实现它:

$("#CustomControl").hide(1000);
$("#CustomControl").show();
于 2012-07-02T14:34:37.340 回答
0

我没有在问题中看到对 jQuery 的任何引用,因此香草 JS 解决方案:将其放在用户控制文件的末尾

<script type="text/javascript">
    setTimeout(function(){
         document.getElementById("<%=this.ClientID%>").style.display = "none";
        }, 5000);

</script>
于 2012-07-02T14:39:06.180 回答