我有一个自定义控件,显示某些操作的结果。
它默认是隐藏的,并且在其他类的代码隐藏中可见。
现在我想在一段时间后隐藏它。我该怎么做?
修改
有些答案建议在自定义控件的末尾添加以下javascript块,如果在自定义控件上使用Visible="false"
,则无效。
但我没有说得那么清楚,所以接受了答案 必须看看:How to call javascript function from code-behind
如果使用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
答案 0 :(得分:0)
你可以在对象上有一个属性,如果你在规定的时间范围之外,在执行时将visible属性改为false,所以你有一个可见的from和until字段,并且当它与之比较时产生一个布尔值现在的时间。
答案 1 :(得分:0)
您可以使用javascript setTimeout
函数执行一些代码来隐藏具有用户控件在一段时间后隐藏的div
<div id="divUserControlContainer">
//put your user control embed code here
</div>
<script type="text/javascript">
$(function(){
window.setTimeout(function() {
$("#divUserControlContainer").hide();
}, 2000);
});
</script>
答案 2 :(得分:0)
您可以通过简单的JQuery方法实现它:
$("#CustomControl").hide(1000);
$("#CustomControl").show();
答案 3 :(得分:0)
我在问题中没有看到任何对jQuery的引用,因此vanilla JS解决方案: 将其放在用户控制文件的末尾
<script type="text/javascript">
setTimeout(function(){
document.getElementById("<%=this.ClientID%>").style.display = "none";
}, 5000);
</script>