-1
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,但用户必须明确单击才能关闭 div,有没有办法使用 asp.net 自行关闭 div?

是的,我知道如果您提供计时器,它确实适用于淡入淡出和淡出,但它不适用于后面的 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;
       }
}

}

4

1 回答 1

2

是的,我知道如果您提供计时器,它确实适用于淡入淡出和淡出,但它不适用于背后的 asp.net 代码。

没有区别。ASP.NET 控件呈现为常规 html 控件。我的预感是您没有使用正确的客户端 ID。你有两个选择:

  • 在您的标记中添加 ClientIDMode="static",如下所示:

    <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);
于 2012-05-14T21:14:17.307 回答