ホームページ >バックエンド開発 >C#.Net チュートリアル >asp.net 非同期トリガーの使用法 (AJAX)

asp.net 非同期トリガーの使用法 (AJAX)

怪我咯
怪我咯オリジナル
2017-03-31 13:20:351766ブラウズ

今日のプロジェクトでは、非同期でトリガーする必要があるため、テキスト ボックスがフォーカスを失ったときにデータベースにアクセスして確認することになり、3 つの方法を考えました。

その使用法の簡単な紹介:

1. AjaxPro の使用

1. プロジェクトに reference を追加します。 、AjaxPro.2.dll ファイルを見つけます

2. Web.config の system.web に次のコードを記述します



="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>




3.イベント、追加 AjaxPro.Utility.RegisterTypeForAjax(typeof(class name));

4. 記述されるすべてのメソッドは
[AjaxPro.AjaxMethod] で始まり、メソッドの呼び出し時に

を記述する必要があります。明確に

NamespaceName.Class name.Method、例: WebUI._Default.getData();
6. 呼び出しは 2 つのメソッド (同期呼び出し、非同期呼び出し) に分けることができます

//バックグラウンドで記述されます。 Paymentless メソッド a [ajaxPro.ajaxMethod]
Public String Getstr () {
Return "Hello My Friends";
}
} // バックグラウンドのパラメータ メソッド
[ajaxpro.ajaxMethod]
getstring (String Str )
{
Return str + "Say: hello my friends";
}

a. html
コントロール
ボタン
にドラッグします (2)。
(3). 入力したい内容を記述します 例: //-----パラメータなしの同期呼び出し---------- ---
関数 Button1_onclick()
{
var res=WebUI._Default.getStr();
alert(res.value);
}

//-------------- -- ----同期呼び出しにはパラメータがあります----------
function Button2_onclick() //TextBox1 はサーバー コントロールです
{
var str=document.getElementById("<%=TextBox1 .ClientID% >").value;
var res=WebUI._Default.getStr(str);
alert(res.value);
}

b. 非同期呼び出し
(1). HTML コントロール ボタンにドラッグします
(2) .ダブルクリックすると、.aspx スクリプトが自動的に表示されます
(3) に入力したい内容を書き込みます
例:
//------------ -----非同期呼び出し パラメータなし---------------------
function Button3_onclick() {
WebUI._Default.getStr(getStrCallBack);
}
function getStrCallBack(res)
{
alert(res. value);
}
//----------------非同期呼び出しにはパラメータがあります-------------- ---
function Button4_onclick( ) {
var str=document.getElementById("<%=TextBox1.ClientID %>").value;
WebUI._Default.getString(str,getStringCallBack);
}
function getStringCallBack (res)
{
alert (res.value);
}

7.
object


//Object[AjaxPro.AjaxMethod]public Class getClass()
{
Class cla = new Class()を呼び出します。 ;
cla.C_Id = 100 ;
cla.C_Name = "クラス 34";
cla.Count = 20;
return cla;
}
//---------------- --同期呼び出しオブジェクト-- -------------
function Button5_onclick() {
var res=WebUI._Default.getClass().value;
alert("クラス番号: "+res.C_Id+" Name : "+res.C_Name+" 人数: "+res.Count);
}
//------非同期呼び出しオブジェクト------ -----
function Button6_onclick( ) {
WebUI._Default.getClass(getClassCallBack);
}
function getClassCallBack(clas)
{
var res=clas.value;
alert("クラス番号: "+res. C_Id+"名前: "+res.C_Name+ "人数:"+res.count);
}

8.
データセット
メソッド
[ajaxpro.ajaxmethod]
public dataset getinfo () { RETURN Webui.getdatase .getList (); }

//--------データセットを非同期的に呼び出す--------------
function Button8_onclick() {
WebUI._Default.getInfo(getDataSetCallBack);
}
function getDataSetCallBack(res)
{
var dataset=res.value;
var strHtml="";
   strHtml +='

';
strHtml +=' ';
strHtml +=' ';
strHtml +=' ';
strHtml +=' ';

for(var i=0;i {
strHtml +='
';
strHtml +=' ';
strHtml +=' ';
strHtml +=' ';
}
strHtml +='
学生编号名前< /td>';
strHtml +='
年龄
'+ dataset.Tables[0].Rows[i].stu_id +' ';
strHtml +='
'+ dataset.Tables[0].Rows[i].stu_name +'
';
thedata.innerHTML =strHtml;//thedata は 1 つです

中の thedata
}



9.验证码の使用

//------ --------------------------------------

// 認証コードの使用
[AjaxPro.AjaxMethod]
public bool ValidCodeData(string code)
{
return (HttpContext.Current.Session["CheckCode"].ToString()==code);
}

function Button9_onclick () {
var code=document.getElementById("<%=TextBox2.ClientID %>").value;
var bool=WebUI._Default.ValidCodeData(code).value;
if(bool==true)
{
alert("ok");
}else
{
alert("no");
}
}
AjaxPro.dll文件网上很多的,自己下,如果找不到呢,给我出版个留言,我播你邮箱



二、直接调用:
javascript中:<%=後台方法%>
function Say()
{
alert("<%=Say()%> ");
}
function del()
{
alert("<%=DeleteByID(8)%>");//DeleteByID(8)后台方法名
}

三、採用ICallbackEventHandler回调

/**//*
* ICallbackEventHandlerインターフェイスを宣言します。ポストバックなしでクライアント上でサーバー コードを呼び出すには、インターフェイスを宣言し、その 2 つのメソッドを実装する必要があります: * RaiseCallbackEvent()、GetCallbackResult()
* RaiseCallbackEvent ( ) がフロントから渡され、渡されたパラメータに従ってさまざまなコードが実行され、その結果が GetCallbackResult() を使用してフロントに返されます
*/

//必須注意System.Web.UI.ICallbackEventHandler接口
public Partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
//定义一个回调的返值
private string Result;
//定义两个
变量,用来接收页面传过到操作数 private string Num1;
private string Num2;
protected void Page_Load(object sendえー、EventArgs e)
{

}

/**////
/// この方法は回调実行の方法であり、パラメーターに基づいてこの方法の中で回调の内容を処理します, この方法は返されません
/// < ;/summary>
/// このパラメータは从客户端传过来的
public void RaiseCallbackEvent(stringeventArgument)
{
//eventArgumengはクライアントからJavaScriptで渡されるパラメータです。この例では渡された3つのパラメータを「/」で区切ってそれぞれのパラメータを取り出して配列に格納しています。 /');
Num1 = PagParams[1];
using using using
through using アウト アウト アウト アウト アウト アウト スルー スルー off ‐ ‐ ‐ through ‐ ‐ ‐ num1 = PagParams[1]
case "0":;結果 = add(); ブレーク; ケース "1": 結果 = sub(); ケース "2" :
ケース "3" ;
public string GetCallbackResult()
{
return Result;
}

//次の 4 つの関数は、RaiseCallbackEvent メソッドを通じて呼び出されます。 private string add()
文字列add() double addResult = double.Parse (Num1) – double.Parse(Num2);
return addResult.ToString();
}

private string pision()
{
double addresult = double.Parse(Num1) / double.Parse(Num2);
return addresult.ToString();
}
}





-->


以上がasp.net 非同期トリガーの使用法 (AJAX)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。