標籤:style blog io ar color os 使用 sp for
如果頁面中不用Ajax,cs中運行某段js代碼方式可以是:
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>window.open(‘default2.aspx‘)</script>");
如果頁面中使用了Ajax ,則上述代碼即使執行也無效果。
如果頁面中Response.Write(),Page.RegisterStartScript()等方法,會彈出提示資訊:
Sys.WebForms.PageRequestManagerErrorException:The message received from the server could not be parsed
對這種情況我們通常採用:
ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alertScript", "window.open(‘default2.aspx‘);", true);
public static void RegisterStartupScript( Control control, Type type, string key, string script, bool addScriptTags )參數:control類型: System.Web.UI. Control 正在註冊該用戶端指令碼塊的控制項。
type類型: System. Type 該用戶端指令碼塊的類型。通常使用 typeof 運算子 (C#) 或 GetType 運算子 (Visual Basic) 來指定該參數,以檢索正在註冊該指令碼的控制項的類型。
key類型: System. String 該指令碼塊的唯一識別碼。
script類型: System. String 指令碼。
addScriptTags類型: System. Boolean 如果用 <script> 和 </script> 標記括起該指令碼塊,則為 true;否則為 false。
備忘:
使用 RegisterStartupScript 方法,可為與部分頁面呈現相容且不具有 Microsoft AJAX Library 依賴項的頁面註冊啟動指令碼塊。 僅當正在註冊該塊的控制項位於要更新的 UpdatePanel 控制項內時,才將通過使用此方法註冊的啟動指令碼塊發送到頁面。 若要在每次發生非同步回傳時都註冊啟動指令碼塊,請使用該方法的 RegisterStartupScript(Page, Type, String, String, Boolean) 重載。
如果要註冊與部分頁面更新無關的啟動指令碼,並且只想在初始頁面呈現期間註冊一次該指令碼,請使用 ClientScriptManager 類的 RegisterStartupScript方法。 可以從頁面的 ClientScript 屬性擷取對 ClientScriptManager 對象的引用。
RegisterStartupScript 方法所呈現的指令碼塊會在頁面完成載入之時、但頁面的用戶端 onload 事件引發之前執行。 啟動指令碼塊位於呈現的 ASP.NET 頁面底部的 </form> 標記之前。
不能保證使用 RegisterStartupScript 註冊的啟動指令碼塊按照其註冊順序輸出。 如果啟動指令碼塊的順序很重要,請使用 StringBuilder 對象將指令碼塊集中到一個字串中,然後將它們作為單個啟動指令碼進行註冊。
使用範例代碼:
//普通ASP.NET應用程式中的應用
ScriptManager.RegisterStartupScript(this.Updatanel1, this.GetType(), "", "alert(‘您是管理員,登入成功!‘);", true);
//在AJAX環境下的應用
ScriptManager.RegisterStartupScript(UpdatePanel1,typeof(UpdatePanel),"scriptname","alert(‘您是管理員,登入成功!‘);",true);
使用AJAX.ScriptManager時註冊指令碼的方法