【发布时间】:2012-07-02 14:23:37
【问题描述】:
我有一个显示某些操作结果的自定义控件。
默认情况下它是隐藏的,并且在其他类的代码隐藏中可见。
现在我想在一段时间后隐藏它。我该怎么做?
编辑:
一些答案建议在自定义控件末尾添加以下 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
【问题讨论】:
标签: asp.net .net custom-controls