我有一个自定义控件,它显示一些操作的结果。
它默认是隐藏的,并且在其他类的代码隐藏中可见。
现在我想在一段时间后隐藏它。我该怎么做?
编辑:
一些答案建议在自定义控件的末尾添加以下 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