asp.net后台调用javascript的方法
1. 用Response.Write方法
代碼如下:
Response.Write("<script type='text/javascript'>alert("XXX");</script>");
此方法缺陷就是不能調用腳本文件中的自定義的函數(shù),只能調用內部函數(shù),具體調用自定義的函數(shù)只能在Response.Write寫上函數(shù)定 義,比如
Response.Write("<script type='text/javascript'>function myfun(){}</script>");
3.普通的添加控件的Attributes屬性
對于普通按鈕就是:Button1.Attributes.Add("onclick","MyFun();");
只能在Onload中或類似于onload的初始化過程中添加才有效。而且是先執(zhí)行腳本函數(shù),無法改變執(zhí)行順序。
2.用ClientScript類
代碼如下:在想調用某個javascript腳本函數(shù)的地方添加代碼,注意要保證MyFun已經在腳本文件中定義過了。
ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");
這個方法比Response.Write更方便一些,可以直接調用腳本文件中的自定義函數(shù)。
?
ClientScript.RegisterStartupScript方法有3個重載:
1:RegisterStartupScript(Page, String, String) 向 ScriptManager 控件注冊一個啟動腳本塊并將該腳本塊添加到頁面中。需要向第三個參數(shù)添加<script></script>腳本標簽。第一個參數(shù)為頁面Page。第二個腳本函數(shù)的名字,隨便起。第三個是<script></script>形式的腳本內容。
2:RegisterStartupScript(Control, Type, String, String, Boolean) 使用 ScriptManager 控件為 UpdatePanel 中的某個控件注冊一個啟動腳本塊,并將該腳本塊添加到頁面中。第一個參數(shù)為要注冊腳本的控件ID,試了一下,只要是本頁面的就行。第二個參數(shù)為注冊腳本控件類型,是控件還是this的GetType()都可以,typeOf(string)也沒問題.第三個腳本函數(shù)的名字,隨便起。第四個是腳本內容。第五個是標明是否再添加腳本標簽,如果第四個參數(shù)里包含了<script></script>標簽,此處則為false,否則為true。
3:RegisterStartupScript(Page, Type, String, String, Boolean) 為每個異步回發(fā)向 ScriptManager 控件注冊一個啟動腳本塊,并將該腳本塊添加到頁面中。頁面如果有用到Ajax需要用到這種。第一個參數(shù)為頁面Page。第二個參數(shù)為注冊腳本控件類型,是控件還是this的GetType()都可以,typeOf(string)也沒問題.第三個腳本函數(shù)的名字,隨便起。第四個是腳本內容。第五個是標明是否再添加腳本標簽,如果第四個參數(shù)里包含了<script></script>標簽,此處則為false,否則為true。
如果頁面中不用Ajax,cs中運行某段js代碼方式可以是:
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>window.open('default2.aspx')</script>");
如果頁面中使用了Ajax ,則上述代碼即使執(zhí)行也無效果。對這種情況我們通常采用:
ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alertScript", "window.open('default2.aspx');", true);
其中第一個參數(shù)為要注冊腳本的控件ID,試了一下,只要是本頁面的就行。
第二個參數(shù)為注冊腳本控件類型,是控件還是this的GetType()都可以,typeOf(string)也沒問題.
第三個腳本函數(shù)的名字,隨便起。
第四個是腳本內容。
第五個是標明是否再添加腳本標簽,如果第四個參數(shù)里包含了<script></script>標簽,此處則為false,否則為true。
如果注冊的兩個腳本函數(shù)的名稱相同,則第二個腳本函數(shù)就不會執(zhí)行。因為腳本管理器使用此字符串來分析是否是一個已經加載過的腳本,如果加載過,將不會再次渲染。所以第二個就不會加載執(zhí)行了。
?
轉載于:https://www.cnblogs.com/renfeng/p/4112705.html
總結
以上是生活随笔為你收集整理的asp.net后台调用javascript的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图片处理工具类
- 下一篇: [WPF系列]-DynamicResou