C#後臺呼叫前臺javascript的五種方法

iDotNetSpace發表於2010-12-31

於專案需要,用到其他專案組用VC開發的元件,在web後臺程式碼無法訪問這個元件,所以只好通過後臺呼叫前臺的javascript,從而操作這個元件。在網上找了找,發現有三種方法可以訪問到前臺程式碼:

 

第一種,OnClientClick (vs2003不支援這個方法)

client_click() 就是javascript的一個方法。

第二種,Button1.Attributes.Add("onclick", "return Client_Click()");

“Client_Click() “是一個前臺方法,可以替換成一般的指令碼如:retrun confirm('確定刪除嗎?')

第三種,是我自認為最靈活的一種,ClientScript.RegisterStartupScript

例子:StringBuilder sb = new StringBuilder();

sb.Append("");

sb.Append("Button2_onclick('" + serverPath + "')");

sb.Append("");

ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString());

第四種. 用Response.Write方法寫入指令碼

比如在你單擊按鈕後,先運算元據庫,完了後顯示已經完成,可以在最後想呼叫的地方寫上

Response.Write("alert();");

這個方法有個缺陷就是不能呼叫指令碼檔案中的自定義的函式,只能呼叫內部函式,具體呼叫自定義的函式只能在Response.Write寫上函式定義,比如Response.Write("function myfun(){...}");

第五種 用ClientScript類動態新增指令碼

用法如下:在想呼叫某個javascript指令碼函式的地方新增程式碼,注意要保證MyFun已經在指令碼檔案中定義過了。

ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "

這個方法比Response.Write更方便一些,可以直接呼叫指令碼檔案中的自定義函式。

可以在程式的任何地方執行,o(∩_∩)o...,是不是很好用呢

注意執行順序:先執行Client ,再執行Server

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-683054/,如需轉載,請註明出處,否則將追究法律責任。

相關文章