C〓〓とJSは相互作用します
17974 ワード
C鑰コードとjavaScript関数の相互呼び出し:
1.JavaScriptでC〓関数を訪問するにはどうすればいいですか?
2.JavaScriptでC〓変数にどうやってアクセスしますか?
3.JavaScriptの既存の変数はどうやってC嗳中を訪問しますか?
4.どうやってC〓〓の中でJavaScript関数を訪問しますか?
問題1の答えは以下の通りです.
javaScript関数では、C〓というコードの関数を実行します.
方法1:ページとページを結合する
1、関数宣言はpublicです.
バックグラウンドコード(publicをprotectedに変えてもいいです.)
2、htmlでは「%=ss()%」で呼んでもいいです.///C〓のバックグラウンドの関数名です.
フロントスクリプト
方法2:JavaScript非同期呼び出しASP.Netページで定義する方法
1.この方法を公有と宣言する(public).
2.この方法を、例示的な方法ではなく、クラス方法として宣言する.
3.この方法を【WebMethod】属性を追加します.
4.ページのScript ManagerコントロールのEnbalePageMethods属性をtrueに設定します.
5.クライアントでは、以下のJavaScriptの文法を使って、このページのメソッドを呼び出します.
PageMethods.[MethodName]
6.クライアントの非同期のためにコールバック関数を指定し、コールバック関数で戻り値を受け取り、さらに処理する.
7.using System.Web.Servicesを追加する.
例:
フロントJavaScriptコード
方法3:JavaScript非同期呼び出しは、Webサービスクラスで定義される方法を指す.
1.ウェブサービスの表示を追加します.このサービスはASP.NET AJAXを使ってスクリプトからこのWebサービスを呼び出すことができるようにします.
対応する属性は[System.Web.Script.Services.Script Service]です.
2.この方法をpublicと宣言し、この方法を[webMethod]の属性方法として表記する.
3.ページ内のScript Managerコントロールにwebサービスの参照<Services><asp:ServiceReference Path=“~/WebService.asmx”/>を追加します.
4.クライアントでは、以下のJavaScriptの文法を使ってwebサービスを起動する方法を使用しています.
例:
ページコード
ウェブサービスのバックグラウンドコード
問題2答えは以下の通りです.JavaScriptでC嗳変数にどうやってアクセスしますか?
方法1:1、ページ上で隠しドメインアクセス<input id=“xx”type=“hidden”runan=“server”>
方法の2:1、バックグランドのようにPUBLIC STRING Nを定義しました.デスクjsで参照してください.この変数のフォーマットは'<%=n%>'または'+<%=n%>+"です.
方法3:1、またはサーバー側の変数の割り当て後、ページにスクリプトを登録することができます.
"スクリプトlaguage='javascript''var temp="+tmp+""
tmpはバックグラウンド変数で、jsで直接にtemp取得値にアクセスできます.
問題3.JavaScriptの既存変数はどうやってC菗中を訪問しますか?
方法1:1、フロントはサーバテキストコントロールでドメインを隠し、js変数値を書き込みます.バックグラウンドは直接コントロールIDでアクセスして呼び出します.
方法2:cookieまたはsessionで変数値を格納できます.バックグラウンドは直接使用できます.
問題4 C⻠コード実行JavaScript関数とJavaScript関数の呼び出し
方法1:できるだけレスキュー.Writeを使わないようにします.この方法はCSSに影響を与え、ページ効果のばらつきを引き起こす.
方法2:C〓ではScript Manager.Register Startup Script(this,this,GetType(),“edit”,“CSharpCallJs(')+param 1+“、'”+param 2+“”を使用しています.
例:
スクリプト関数
ページのバックグラウンドコード
方法3:C〓ではPage.Register Startup Script(gg)、“script”CSharpCallJs“”+param 1+“”+param 2+“”;“script”);
方法四:C〓中でLiteral類(label類に類似)を使用する
サンプルコード
1.JavaScriptでC〓関数を訪問するにはどうすればいいですか?
2.JavaScriptでC〓変数にどうやってアクセスしますか?
3.JavaScriptの既存の変数はどうやってC嗳中を訪問しますか?
4.どうやってC〓〓の中でJavaScript関数を訪問しますか?
問題1の答えは以下の通りです.
javaScript関数では、C〓というコードの関数を実行します.
方法1:ページとページを結合する
1、関数宣言はpublicです.
バックグラウンドコード(publicをprotectedに変えてもいいです.)
1 public string ss()
2 {
3 return("a");
4 }
2、htmlでは「%=ss()%」で呼んでもいいです.///C〓のバックグラウンドの関数名です.
フロントスクリプト
1 <script language=javascript>
2
3 var a = "<%=ss()%>";//JavaScript C#
4 alert(a);
5 </script>
方法2:JavaScript非同期呼び出しASP.Netページで定義する方法
1.この方法を公有と宣言する(public).
2.この方法を、例示的な方法ではなく、クラス方法として宣言する.
3.この方法を【WebMethod】属性を追加します.
4.ページのScript ManagerコントロールのEnbalePageMethods属性をtrueに設定します.
5.クライアントでは、以下のJavaScriptの文法を使って、このページのメソッドを呼び出します.
PageMethods.[MethodName]
6.クライアントの非同期のためにコールバック関数を指定し、コールバック関数で戻り値を受け取り、さらに処理する.
7.using System.Web.Servicesを追加する.
例:
フロントJavaScriptコード
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head runat="server">
3 <title> </title>
4 <script type="text/javascript">
5 function JsCallCSharp(param1)
6 {
7 PageMethods.sayhell(param1,onSayHelloSucceeded);//sayhell 【webMethod】 param1 ,onSayHelloSucceeded
8 }
9 function onSayHelloSucceeded(result)//
10 {
11 alert(result);
12 }
13
14 </script>
15
16 </head>
17 <body>
18 <form id="form1" runat="server">
19 <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">//ScriptManager ,
20
21 EnablePageMethods="true"
22 </asp:ScriptManager>
23 <div>
24 <input type="button" onclick="JsCallCSharp('hello')" /> </div>
25 </form>
26 </body>
27 </html>
28
バックグラウンドコード(.csファイル)using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Web.Services;// web
public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]// web
public static string sayhell(string say)// ,
{
return say;
}
}
方法3:JavaScript非同期呼び出しは、Webサービスクラスで定義される方法を指す.
1.ウェブサービスの表示を追加します.このサービスはASP.NET AJAXを使ってスクリプトからこのWebサービスを呼び出すことができるようにします.
対応する属性は[System.Web.Script.Services.Script Service]です.
2.この方法をpublicと宣言し、この方法を[webMethod]の属性方法として表記する.
3.ページ内のScript Managerコントロールにwebサービスの参照<Services><asp:ServiceReference Path=“~/WebService.asmx”/>を追加します.
4.クライアントでは、以下のJavaScriptの文法を使ってwebサービスを起動する方法を使用しています.
WebService.HelloWorld("helloWord",function(res)//Webservice web HelloWord web ,
function JavaScript
{
alert(res);
}
);
例:
ページコード
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title> </title>
<script type="text/javascript">
function JsCallCSharp(param1)
{
PageMethods.sayhell(param1,onSayHelloSucceeded);
}
function onSayHelloSucceeded(result)
{
alert(result);
}
//
function JsCallWebService()
{
WebService.HelloWorld("helloWord",function(res)// web {
alert(res);
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" >
<Services><asp:ServiceReference Path="~/WebService.asmx" />
</Services>// web
</asp:ScriptManager>
<div>
<input type="button" onclick="JsCallCSharp('hello')" value=" C# " />
<input type="button" onclick="JsCallWebService()" value=" web " />
</div>
</form>
</body>
</html>
ウェブサービスのバックグラウンドコード
using System;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
/// <summary> ///WebService /// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] // ASP.NET AJAX Web , 。 [System.Web.Script.Services.ScriptService]// public class WebService : System.Web.Services.WebService {
public WebService () {
// ,
//InitializeComponent();
}
[WebMethod]//
public string HelloWorld(string result) {
return result;
}
}
問題2答えは以下の通りです.JavaScriptでC嗳変数にどうやってアクセスしますか?
方法1:1、ページ上で隠しドメインアクセス<input id=“xx”type=“hidden”runan=“server”>
方法の2:1、バックグランドのようにPUBLIC STRING Nを定義しました.デスクjsで参照してください.この変数のフォーマットは'<%=n%>'または'+<%=n%>+"です.
方法3:1、またはサーバー側の変数の割り当て後、ページにスクリプトを登録することができます.
"スクリプトlaguage='javascript''var temp="+tmp+""
tmpはバックグラウンド変数で、jsで直接にtemp取得値にアクセスできます.
問題3.JavaScriptの既存変数はどうやってC菗中を訪問しますか?
方法1:1、フロントはサーバテキストコントロールでドメインを隠し、js変数値を書き込みます.バックグラウンドは直接コントロールIDでアクセスして呼び出します.
方法2:cookieまたはsessionで変数値を格納できます.バックグラウンドは直接使用できます.
問題4 C⻠コード実行JavaScript関数とJavaScript関数の呼び出し
方法1:できるだけレスキュー.Writeを使わないようにします.この方法はCSSに影響を与え、ページ効果のばらつきを引き起こす.
方法2:C〓ではScript Manager.Register Startup Script(this,this,GetType(),“edit”,“CSharpCallJs(')+param 1+“、'”+param 2+“”を使用しています.
例:
スクリプト関数
function CSharpCallJs(param1,param2)
{
alert(param1 + param2);
}
ページのバックグラウンドコード
ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "CSharpCallJs('" + param1 + "','" + param2 + "');", true);//
方法3:C〓ではPage.Register Startup Script(gg)、“script”CSharpCallJs“”+param 1+“”+param 2+“”;“script”);
方法四:C〓中でLiteral類(label類に類似)を使用する
サンプルコード
private void Button2_Click(object sender, System.EventArgs e)
{
string str;
str="<script language='javascript'>";
str+="selectRange()";
str+="</script>";
//Literal1.Visible=true;
Literal1.Text=str;
}