使用AJAX.ScriptManager時註冊指令碼的方法

來源:互聯網
上載者:User

標籤: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時註冊指令碼的方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.