C#后臺調(diào)用前臺javascript的五種方法小結(jié)
更新時間:2010年12月30日 17:04:05 作者:
于項目需要,用到其他項目組用VC開發(fā)的組件,在web后臺代碼無法訪問這個組件,所以只好通過后臺調(diào)用前臺的javascript,從而操作這個組件。
在網(wǎng)上找了找,發(fā)現(xiàn)有三種方法可以訪問到前臺代碼:
第一種,OnClientClick (vs2003不支持這個方法)
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="client_click()" OnClick="Button1_Click" />
client_click() 就是javascript的一個方法。
第二種,Button1.Attributes.Add("onclick", "return Client_Click()");
“Client_Click() “是一個前臺方法,可以替換成一般的腳本如:retrun confirm('確定刪除嗎?')
第三種,是我自認(rèn)為最靈活的一種,ClientScript.RegisterStartupScript
例子:StringBuilder sb = new StringBuilder();
sb.Append("<script language='javascript'>");
sb.Append("Button2_onclick('" + serverPath + "')");
sb.Append("</script>");
ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString());
第四種. 用Response.Write方法寫入腳本
比如在你單擊按鈕后,先操作數(shù)據(jù)庫,完了后顯示已經(jīng)完成,可以在最后想調(diào)用的地方寫上
Response.Write("<script type='text/javascript'>alert();</script>");
這個方法有個缺陷就是不能調(diào)用腳本文件中的自定義的函數(shù),只能調(diào)用內(nèi)部函數(shù),具體調(diào)用自定義的函數(shù)只能在Response.Write寫上函數(shù)定義,比如Response.Write("<script type='text/javascript'>function myfun(){...}</script>");
第五種 用ClientScript類動態(tài)添加腳本
用法如下:在想調(diào)用某個javascript腳本函數(shù)的地方添加代碼,注意要保證MyFun已經(jīng)在腳本文件中定義過了。
ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");
這個方法比Response.Write更方便一些,可以直接調(diào)用腳本文件中的自定義函數(shù)。
可以在程序的任何地方執(zhí)行,o(∩_∩)o...,是不是很好用呢
注意執(zhí)行順序:先執(zhí)行Client ,再執(zhí)行Server
第一種,OnClientClick (vs2003不支持這個方法)
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="client_click()" OnClick="Button1_Click" />
client_click() 就是javascript的一個方法。
第二種,Button1.Attributes.Add("onclick", "return Client_Click()");
“Client_Click() “是一個前臺方法,可以替換成一般的腳本如:retrun confirm('確定刪除嗎?')
第三種,是我自認(rèn)為最靈活的一種,ClientScript.RegisterStartupScript
例子:StringBuilder sb = new StringBuilder();
sb.Append("<script language='javascript'>");
sb.Append("Button2_onclick('" + serverPath + "')");
sb.Append("</script>");
ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString());
第四種. 用Response.Write方法寫入腳本
比如在你單擊按鈕后,先操作數(shù)據(jù)庫,完了后顯示已經(jīng)完成,可以在最后想調(diào)用的地方寫上
Response.Write("<script type='text/javascript'>alert();</script>");
這個方法有個缺陷就是不能調(diào)用腳本文件中的自定義的函數(shù),只能調(diào)用內(nèi)部函數(shù),具體調(diào)用自定義的函數(shù)只能在Response.Write寫上函數(shù)定義,比如Response.Write("<script type='text/javascript'>function myfun(){...}</script>");
第五種 用ClientScript類動態(tài)添加腳本
用法如下:在想調(diào)用某個javascript腳本函數(shù)的地方添加代碼,注意要保證MyFun已經(jīng)在腳本文件中定義過了。
ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");
這個方法比Response.Write更方便一些,可以直接調(diào)用腳本文件中的自定義函數(shù)。
可以在程序的任何地方執(zhí)行,o(∩_∩)o...,是不是很好用呢
注意執(zhí)行順序:先執(zhí)行Client ,再執(zhí)行Server
相關(guān)文章
asp.net(C#)函數(shù)對象參數(shù)傳遞的問題
我們知道在.net里class是引用類型,在函數(shù)參數(shù)表中的對象傳遞的都是對象的引用,所以在函數(shù)體內(nèi)對其對象參數(shù)的修改會影響函數(shù)外對應(yīng)的對象本身,例如下面的程序.2009-12-12
.net全局定時定期執(zhí)行某些操作在Global.asax中具體實現(xiàn)
全局定時定期執(zhí)行某些操作看起來是多么自動化的一個問題不過在.net的Global.asax文件中稍微配置即可實現(xiàn),詳細(xì)配置如下,感興趣的朋友可以參考下哈2013-04-04
ASP.NET―001:GridView綁定List、頁面返回值具體實現(xiàn)
這篇文章主要介紹了ASP.NET―GridView綁定List、頁面返回值具體實現(xiàn),需要的朋友可以參考下2014-02-02
ASP.NET中UpdatePanel與jQuery同時使用所遇問題解決
在.NET中使用了UpdatePanel,里面的輸入框使用了jQuery的日歷選擇器,接下來介紹下兩者同時使用的一些細(xì)節(jié)及問題的解決方法,感興趣的各位可以參考下哈2013-03-03
asp.net mvc webapi 實用的接口加密方法示例
本篇文章主要介紹了asp.net mvc webapi 實用的接口加密方法示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10

