ホームページ > バックエンド開発 > C#.Net チュートリアル > .net と JavaScript スクリプト間の対話方法の概要

.net と JavaScript スクリプト間の対話方法の概要

高洛峰
リリース: 2017-01-21 14:54:19
オリジナル
1187 人が閲覧しました

この記事の例は、.net と JavaScript スクリプト間の対話方法を要約し、参考のために皆さんと共有します。具体的な方法は次のとおりです:

1.asp.net は js

Response.Write("<script language=javascript>");
Response.Write("alert('登峰欢迎您 ');" );
Response.Write("location.href='login.aspx';") ;
Response.Write("</script>") ;
ログイン後にコピー
を呼び出します

この場合、ページ内の JS スクリプトの任意の関数を呼び出すことができます

2. js スクリプトはサーバーの値にどのようにアクセスしますか?コントロール

インターフェイス上で、Name の ID を持つ TextBox コントロールを使用して、js

var myvalue=document.all('Name').value;
ログイン後にコピー

3 の変数の値を取得する方法を説明します。インターフェイスに隠しコントロール HtmlInputHidden を配置し、それをサーバーに設定します。コントロールが実行され、js スクリプトや ASP.NET コードでコントロールの値にアクセスできるようになります。サーバー コントロールに値を割り当てます。 js:

var bt=document.all('Name').value;
bt.value='名称';
ログイン後にコピー

ASP.NETのName.Valueを使用してアクセスします。

4. フォアグラウンドとバックグラウンド間の関数呼び出し

<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function callServer(arg){
var oTb = document.getElementById('<%=editValue.ClientID %>');
// arg中是传给服务器的变量
arg = oTb.value;
<%=ClientScript.GetCallbackEventReference(this, "arg", "receiveServerResult", null, true)%>
}
function receiveServerResult(result){
// 在这里添加处理服务器返回结果的逻辑,result变量是服务器返回的结果
alert(result);
}
</script>
...//此处省略部分代码
<asp:TextBox ID="editValue" runat="server" />
<asp:Button ID="btnSubmit" runat="server" Text="Submit Data" OnClientClick="callServer();return false;" />
</head>
ログイン後にコピー
CS ファイル:

C# コード
//页面类继承ICallbackEventHandler接口,并实现其中的两个方法
public partial class _Default : System.Web.UI.Page , ICallbackEventHandler
{
private string m_strResult = "";
#region ICallbackEventHandler Members
public string GetCallbackResult()
{
// 返回服务器端处理结果给receiveServerResult方法
return m_strResult;
}
public void RaiseCallbackEvent(string eventArgument)
{
// eventArgument是客户端传来的变量,对应arg变量
// 在这里添加服务器端处理逻辑...
m_strResult = eventArgument;
}
#endregion
}
ログイン後にコピー

5. JavaScript 関数の C# コードで関数を実行します:

方法 1:
① まずボタンを作成します。呼び出されたまたは処理されたコンテンツを button_click に書き込みます
②。フォアグラウンドまたはバックグラウンドで js 関数を呼び出して、click イベントをトリガーします。バックグラウンド C# 関数;

方法 2 :

①。関数は public

backend コードとして宣言されます (public を protected に変更することもできます)

document.getElementById("btn1").click();
ログイン後にコピー

②。
フロントエンド スクリプト

public string ss()
{
return("a");
}
ログイン後にコピー

方法 3:

①、

<script language=javascript>
var a = "<%=ss()%>";
alert(a);
</script>
ログイン後にコピー

方法 4:

<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument)
{
var theForm = document.Form1; //指runat=server的form
theForm.__EVENTTARGET.value = eventTarget;
theFrom.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
-->
</script>
<input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:doPostBack(&#39;Button1&#39;,&#39;&#39;)">
ログイン後にコピー

.CS 内:

<script language="javascript">
function SubmitKeyClick()
{
if (event.keyCode == 13)
{
event.cancelBubble = true;
event.returnValue = false;
document.all.FunName.value="你要调用的函数名";
document.form[0].submit();
}
}
</script>
<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">
<input type="hidden" name="FunName"> <!--用来存储你要调用的函数 -->
ログイン後にコピー

6. JavaScript で C# 変数にアクセスする

方法 1: 隠しフィールドを介して

public Page_OnLoad()
{
if (!Page.IsPost())
{
string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
//根据传回来的值决定调用哪个函数
switch(strFunName)
{
case "enter()":
enter() ; //调用该函数
break;
case "其他":
//调用其他函数
break;
default:
//调用默认函数
break;
}
}
}
public void enter()
{
//……比如计算某值
}
ログイン後にコピー

にアクセスするページ上でメソッド 2: PUBLIC がバックグラウンドで定義されている場合 STRING N; フロントエンド JS でこの変数を参照する形式は '<%=n%>' または "+<%=n%>+ "

方法 3: または、スクリプトの登録ページでサーバー側変数に値を割り当てることもできます

""

tmp はバックグラウンド変数なので、js で temp に直接アクセスして値を取得できます。


7. C# で JavaScript 関数にアクセスする

C# コードで JavaScript 関数を実行する:

方法 1:

<input id="xx" type="hidden" runat="server">
ログイン後にコピー

方法 2: Literal クラスを使用してから

Page.RegisterStartupScript("ggg","<script>SetVisible(1); </script>");
ログイン後にコピー

この記事が皆様の C# プログラミング設計に役立つことを願っています。

.net と JavaScript スクリプト間の対話方法をまとめたその他の関連記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート