protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
divStatus.Visible = true;
Page.ClientScript.RegisterStartupScript(this.GetType(), "somekey", "function autoHide(){ setTimeout(function() {document.getlementById('" + divStatus.ClientID + "').style.display='none';},5000);};", true);
}
<form id="form1" runat="server">
<div>
<div class="success" id="divStatus" runat="server" visible="false" >sssssssssssssssss</div>
</div>
</form>
我需要添加什么才能在几秒钟后逐渐淡出?目前我正在显示div但是用户必须单击explcitly来关闭div并且有没有办法用asp.net自己关闭div?
是的,我知道如果你提供计时器它会与fadein和fadeout一起工作,但是它不适用于后面的asp.net代码。
// HTML:
<div class="success" id="divStatus" runat="server" visible="false" ></div>
//代码背后:
protected void lnkbtn_add_Click(object sender, EventArgs e)
{
........//more code for deleting
if (deleted)
{
divStatus.visible = true;
}
}
}
答案 0 :(得分:2)
是的,我知道如果你提供的话,它确实适用于fadein和fadeout 计时器,但它不适用于后面的asp.net代码。
没有区别。 ASP.NET控件呈现为常规html控件。我的预感是你没有使用正确的客户ID。你有两个选择:
添加ClientIDMode =&#34;静态&#34;在您的标记中如此:
<div clientidmode="static" class="success" id="divStatus" runat="server" visible="false" ></div>
然后添加javascript函数以自动隐藏div:
function autoHide()
{ //hide after 5 seconds
setTimeout(function(){document.getlementById('divStatus').style.display='none';},5000);
}
只需使用<%=divStatus.ClientID%>
即可获取客户端ID
最终在页面上呈现如下:
function autoHide() { //hide after 5 seconds
setTimeout(function() {document.getlementById('<%=divStatus.ClientID%>').style.display='none';},5000);
}
从代码隐藏中,您只需致电:
........//more code for deleting
Page.ClientScript.RegisterStartupScript(this.GetType(),"somekey","autoHide();",false);
<强>更新强>
如果您想在后面的代码中定义autoHide
函数,请执行以下操作(请注意,在这种情况下,最后一个参数为true
,而不是之前的false
示例):
........//more code for deleting
string script = @"document.getElementById('" + divStatus.ClientID + "').innerHTML='You are done!' ;setTimeout(function(){document.getElementById('" + divStatus.ClientID + "').style.display='none';},5000);";
Page.ClientScript.RegisterStartupScript(this.GetType(), "somekey", script, true);