日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

ASP.NET前台JS与后台CS函数如何互相调用

發(fā)布時間:2025/6/17 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET前台JS与后台CS函数如何互相调用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在實際的Web開發(fā)中,我們可能會常常遇到后臺調(diào)用前臺JS代碼或者前臺JS調(diào)用后臺代碼的情況。今天就把比較實用的前后臺相互調(diào)用的方法總結(jié)出來和大家分享。

<1>后臺代碼調(diào)用前臺JS代碼

一、說到后臺代碼調(diào)用前臺的JS代碼很多人首先就會想到使用ClientScript對象。

ClientScript.RegisterStartupScript()方法該方法主要是注冊啟動腳本文本,即在后臺執(zhí)行調(diào)用前臺JS代碼

該方法有兩個重載,

1、ClientScript.RegisterStartupScriptType type,string key ,string script注冊啟動腳本//分別表示:1、要注冊的啟動腳本的類型(一般直接填this.GetType()即可),2、要注冊的啟動腳本的鍵(相當(dāng)于為執(zhí)行腳本起一個名字,任意名即可),3、要注冊的啟動腳本文本(一般為"<script>函數(shù)()</script>")

示例:

ClientScript.RegisterStartupScript(this.GetType(),"SayHello","<script>SayHello('"+name+"')</script>");//先獲取用戶姓名,然后再調(diào)用前臺的JS函數(shù)SayHello(name);

2ClientScript.RegisterStartupScript(Typetype,string key, string script,bool flag);//該函數(shù)和第一參數(shù)的區(qū)別在于將最后一個參數(shù)設(shè)為"ture"時,第三個參數(shù)可以直接寫被調(diào)用的函數(shù),不用再加"<script></script>",這兩個方法差別不是很大。

示例:

ClientScript.RegisterStartupScript(this.GetType(),"SayHello1", "SayHello('" + name + "')", true);//跟第一方法的效果一樣,調(diào)用前臺SayHello(name)函數(shù),如果最后一個值設(shè)為false,則仍需添加上"<script></script>"標(biāo)記

這里需要特別注意的是在注冊啟動腳本的時候,鍵是唯一的,不能重復(fù),如果有將會報錯。

?

二、使用ClientScript.RegisterClientScriptBlock()方法,注冊客戶端腳本塊

該方法有兩個重載,使用方法幾乎和ClientScript.RegisterClientScriptBlock()的兩個方法一模一樣。這里只是給出示例,就不再做過多的解釋。

?ClientScript.RegisterClientScriptBlock(this.GetType(),"SayHello2", "ShowPerson('" + age + "')",true);????????ClientScript.RegisterClientScriptBlock(this.GetType(),"SayHello2","<script>SayHello('"+name+"')</script>");

?

在這里主要講一下RegisterClientScriptBlock方法和RegisterStartupScript方法和區(qū)別

RegisterStartupScript,這種方法會把JS代碼嵌入在頁面的底部、表單的最后(</form>前面)適用于要在頁面控件加載完成后運(yùn)行的JS代碼

RegisterClientScriptBlock,這種方法會把JS代碼嵌入在頁面的頂部、表單的最前(<form>后面)適用于要在控件加載前執(zhí)行的JS代碼

通過html源代碼可見。

?

三、使用Control.Attribute屬性(服務(wù)器控件

這也是一種比較簡單好用的方法,可以將該方法和控件的客戶端方法相關(guān)聯(lián),比如“onbluronfocusonmousemoveonmouseover“等,在這里只是把該方法作為Control的一個屬性來用。

示例:

Page_Load()方法里添加如下代碼:

??txtname.Attributes["onblur"] ="show('" + txt.Text + "')";//當(dāng)用戶離開文本框時,會提示所輸入的內(nèi)容?(在Page_Load使用該方法,其實是在編譯成源文件時在對應(yīng)的html元素的屬性調(diào)用js函數(shù),如<inputtype=”text” οnblur=”show()”/>)

還可以通過這種方法來控制前臺的顯示。其實現(xiàn)方法和本例的方法都是一樣的,在這里就不做過多的介紹了。

?

四、可以使用Control的一個屬性,(服務(wù)器控件),OnClientClick

為該屬性賦值OnClientClick="SayHello()";則就會調(diào)用客戶端的方法,該方法的本質(zhì)就是一個客戶端的方法。(該屬性只有服務(wù)器控件具有,在編譯成源文件時,其實是轉(zhuǎn)換成對應(yīng)的事件,如OnClientClick會轉(zhuǎn)換成onclick)

示例:

???????<asp:Button ID="Button1" runat="server"OnClientClick="Get()" Text="OnClientClick方法測試"/>

? ? ? ? ??

<2>前臺JS調(diào)用后臺的方法

一、最簡單的一種方式,在前臺的JS函數(shù)中寫下如下代碼:

Var name=<%=SayHello()%>

Asp.NET?以前的ASP就是通過這樣的方式將cs代碼寫到apsx頁的,在<% %>中就可以寫cs代碼了,效果跟在cs頁寫一樣。

在前臺頁面<head><head>節(jié)點中添加如下代碼:

<script type="text/javascript>

function Get() {

??????var hello="<%=SayHello() %>";

??????alert(hello);

???????}

???</script>

后臺cs頁代碼如下:

??????public string SayHello()

???????{

???????????return " Javascript調(diào)用后臺代碼顯示姓名:?Olive";

???????}

?結(jié)果:

?

二、通過輔助按鈕實現(xiàn)前臺JS調(diào)用后臺代碼(這樣相當(dāng)于添加多了一個按鈕

1、先在前臺添加一個服務(wù)器端按鈕,雙擊,進(jìn)入后臺.cs頁,寫下將要執(zhí)行的代碼

如下:

protected void Button4_Click(object sender,EventArgs e)?????? {

?????????//在此方法里寫下要執(zhí)行的代碼,此處為簡單的示例??

???????????Response.Write("<script>alert('O(_)O哈哈~你好!')</script>");

}

2、將該按鈕的Width屬性設(shè)為0,將Height屬性設(shè)為0,形如

?<asp:Button ID="btnhoutai" runat="server"Text=""?Width="0"Height="0"

??????????? οnclick="Button4_Click"?/>

3、在前臺添加一個JS函數(shù),如下:

?function Show1() {

???????????document.getElementById("btnhoutai").click();

????????}

4、添加html按鈕并將其οnclick="Show1()";

如下:

<input id="btnjs"type="button" value="Js?調(diào)用后臺C#函數(shù)"?οnclick="Show1()"/>

經(jīng)過以上這四步就可以實現(xiàn)JS調(diào)用后臺的代碼了。

?

*本文轉(zhuǎn)自:http://www.cnblogs.com/Olive116/archive/2012/10/16/2725798.html

轉(zhuǎn)載于:https://www.cnblogs.com/xiaohui1990/p/3444521.html

總結(jié)

以上是生活随笔為你收集整理的ASP.NET前台JS与后台CS函数如何互相调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。