显示div几秒钟,然后使用asp.net代码消失

时间:2012-05-14 21:02:54

标签: asp.net

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;
       }
}

}

1 个答案:

答案 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);