2012-04-10 70 views
0

Java腳本提示功能我ASP.net4.0代碼中使用javascipt的報警功能背後的內容頁文件調用時,整個ASP.Net頁面獲取負載

public void Show(string message) 
{ 

    Page.RegisterClientScript(this.GetType(), "Alert", "<script type=text/javascript>alert('+message+')</script>");   
} 

當我點擊鏈接得到這個腳本調用,然後警報消息出現在黑屏上,然後同樣的屏幕被完全加載。

加載整個頁面後,我想要這條消息(Msg將顯示在具有後控制的同一頁上),然後顯示msg。 使用母版頁和內容頁..

回答

1

請幫助,如果你想顯示在文檔加載時,使用RegisterStartupScript

public void Show(string message) 
{ 
    ClientScriptManager cs = Page.ClientScript; 
    Type myType = this.GetType(); 
    // Check to see if the startup script is already registered. 
    if (!cs.IsStartupScriptRegistered(myType, "AlertScript")) 
    { 
     String script = "alert('" + cleanMessage + "')"; 
     cs.RegisterStartupScript(myType, "AlertScript", script, true); 
    } 
} 

RegisterStartupScript會後,所有的渲染你的腳本元素在頁面中,這將確保它在其他DOM元素加載後運行。

+0

忘了包括這個RegisterStartUpScript,但我也使用了相同的,但沒有發生任何事情..問題依然存在。 – user1324392 2012-04-10 15:23:23

0

代碼隱藏

System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, GetType(Page), "Script", "showMessage();", True) 

JS

<script type="text/javascript" charset="utf-8"> 
$(document).ready(function() { 
function showMessage() { 
alert("Hello!"); 
} 
}); 
</script> 
0

渲染塊!

<html> 
     <head> 
       // <%= GetScripts() %>  here! 
     </head> 
     <body> 
       // <%= GetScripts() %>  or here! 
     </body> 
    </html> 

中的.cs

public string GetScripts() 
    { 
      string exit="<script type='text/javascript' language='javascript'> $(function(){"; 
      exit+= ""; //here! 
      return exit + "});</script>"; 
    } 
1

設置超時時間,這將使頁面中所有的控件負荷可能也適用。請參閱以下適用於我的代碼。

private void MessageBox(string Msg) { ClientScript.RegisterStartupScript(this.GetType(), "AlertMsg", "<script language='javascript'> setTimeout(function() { alert('" + Msg + "') }, 500); </script>"); }

PS:請根據您的要求更改超時時間。

+0

迄今爲止發現的最合理的答案。 使用ajax工具包和tabcontainer時,準備就緒時通常會導致空標籤。 50ms的超時對我來說並沒有什麼用,而且幾乎是不明顯的! – DerpyNerd 2016-08-30 06:32:23