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