2012-05-14 31 views
-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,但用戶必須點擊explcitly關閉div,並且有沒有辦法使用asp.net自己關閉div?顯示DIV幾秒鐘,並使用後面的asp.net代碼消失

是的我知道如果你提供計時器但它不能與後面的asp.net代碼一起工作,你就可以使用fadein和fadeout。

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

}

回答

2

是的,我知道它確實與淡入工作,淡出如果您提供的 計時器但它不適用於後面的asp.net代碼。

沒有區別。 ASP.NET控件呈現爲普通的html控件。我的直覺是你沒有使用渲染的正確客戶端ID。你有兩個選擇:

  • 添加在您的標記的ClientIDMode = 「靜態」 像這樣:

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

UPDATE

如果你想甚至定義代碼後面的功能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); 
+0

是有辦法,我可以有'自動隱藏()'在後面,所以我不依賴於在.aspx代碼,如果我的代碼使用後面的代碼?第二件事是我用div與runat =「服務器」,我顯示基於我的邏輯到可見=真的條件的div,所以如果我只是可見= true會足夠嗎? – issoa

+0

我不太關注你的第一個問題。關於你的第二個問題,答案是肯定的。 – Icarus

+0

您可以使用Jquery在document.ready事件上運行Icarus建議的函數autoHide(): $(document)。就緒(function(){ autoHide(); }); 這顯然已經在你的頁面之前的某個地方宣佈過這個功能。 – CoderRoller

相關問題