在AJAX支持的網站中使用想使用Response.Wrie(“”); 或 Page. RegisterStartupScript (); 彈出一些提示對話框,沒有效果。
最近將以前做的一個項目進行了大的修改,頁面使用AJAX進行無刷新改動,改完后發現原來程序中Response.Write("")都不能使用,后來找到一種方法,
可以使用 System.Web.UI.ScriptManager.RegisterStartupScript(Contrl control, Type type,string key,string script, bool addScriptTags)來達到相應的目的。
其中control是引起回發事件的控件ID,type客戶端腳本類型,key腳本塊標識,script要執行的腳本程序,addScriptTags 如果為true 則前面的腳本語句中不需要加標識若為false 則要寫出完整的腳本語句實例:
ScriptManager.RegisterStartupScript(btnadd, this.GetType(), "ShowMessage", "alert('成功');",true)
或者另外種方法可以用HttpContext.Current.Handler來代替controlID,不過使用前需要轉化為System.Web.UI.Page.
實例:
ScriptManager.RegisterStartupScript((System.Web.UI.Page)HttpContext.Current.Handler, this.GetType(), "ShowMessage", "alert('成功');", true);
在AJAX支持的網站中使用想使用Response.Wrie(“”); 或 Page. RegisterStartupScript (); 彈出一些提示對話框,沒有效果。有如下解決方法:
(1) System.Web.UI.ScriptManager.RegisterStartupScript來替代Page.ClientScript.RegisterStartupScript
函數原型:
System.Web.UI.ScriptManager.RegisterStartupScript(Contrl control, Type type,string key,string script, bool addScriptTags);
參數:
control-----------------要要注冊此段javascript語句的控件ID,如下面示例的按鈕ID btnUnReport
type--------------------這個參數是注冊腳本塊控件的類型,即updatepanel的類型。一般直接用this.GetType()即可
key---------------------為要執行的javascirpt語句起的名字,可以隨便起,類似控件的name屬性
script------------------javascript語句
addScriptTags------為true時,前邊的script參數可以不用再寫javascript標簽;為false,則需自己為script參數添加<script language=’javascript’></script>標簽。
注:要多傳一個Control參數,如果這個control在UpdatePanel里,則運行腳步,如果這個control不在UpdatePanel則不允許這段腳步。
例如:
System.Web.UI.ScriptManager.RegisterStartupScript(btnTestthis.GetType(), "test", "alert(''test'');window.close();", true);