Maison > développement back-end > Tutoriel C#.Net > Utilisation du déclencheur asynchrone asp.net (AJAX)

Utilisation du déclencheur asynchrone asp.net (AJAX)

怪我咯
Libérer: 2017-03-31 13:20:35
original
1756 Les gens l'ont consulté

Dans le projet d'aujourd'hui, comme il doit être déclenché de manière asynchrone, lorsque la zone de texte perd le focus, elle va dans la base de données pour vérifier, puis j'ai pensé à trois façons.

Une brève introduction à son utilisation :

1. Utilisation d'AjaxPro

1 Ajouter Quote, parcourez pour trouver le fichier AjaxPro.2.dll

2. Écrivez le code suivant dans system.web dans Web.config








3. Dans l'événement de chargement , ajoutez
AjaxPro.Utility.RegisterTypeForAjax(typeof(class name));

4. Toutes les méthodes écrites doivent commencer par
[AjaxPro.AjaxMethod], puis écrire la méthode

5. Lors de l'appel, vous devez écrire clairement
espace de noms nom de la classe, par exemple : WebUI._Default.getData(); être divisé en deux Méthode (appel synchrone, appel asynchrone)

// Méthode sans paramètre écrite en arrière-plan
[AjaxPro.AjaxMethod]
public string getStr()
{
return "bonjour mes amis";
}
//Méthode avec paramètres écrits en arrière-plan
[AjaxPro.AjaxMethod]
public string getString(string str)
{
return str + "Dites : bonjour mes amis";
}

a. Appel synchrone
(1) Faites glisser dans le bouton html
contrôle
(2). cliquez et il s'affichera automatiquement. Dans le script aspx (3) Écrivez le contenu que vous souhaitez saisir Exemple :
//--------------. ----Appel synchrone Aucun paramètre -----------
function Button1_onclick()
{
var res=WebUI._Default.getStr();
alert(res .value);
}

//-----------------------Appel synchrone avec paramètres------------
function Button2_onclick( ) //TextBox1 est un contrôle serveur
{
var str=document.getElementById("<%=TextBox1.ClientID%>").value;
var res= WebUI._Default.getStr(str );
alert(res.value);
}

b. Appel asynchrone
(1) Faites glisser dans le bouton de contrôle HTML
(). 2). Double-cliquez et il s'affichera automatiquement Dans le script .aspx
(3) Écrivez le contenu que vous souhaitez saisir
Exemple :
//----------. -------Appel asynchrone Aucun paramètre-----------------
fonction Button3_onclick() {
WebUI._Default.getStr(getStrCallBack);
}
fonction getStrCallBack(res )
{
alert(res.value);
}
//----------------- L'appel asynchrone a des paramètres ----- ------------
function Button4_onclick() {
var str=document.getElementById("<%=TextBox1.ClientID %> ").value;
WebUI ._Default.getString(str,getStringCallBack);
}
function getStringCallBack(res)
{
alert(res.value);
}

7. Appel
Object

//Object[AjaxPro.AjaxMethod]
public Class getClass()
{
Class cla = new Class();
cla .C_Id = 100;
cla.C_Name = "Class 34";
cla.Count = 20;
return cla;
}
// --------- ---------Objet d'appel synchrone-----------
function Button5_onclick() {
var res=WebUI._Default. getClass().value;
alert("Numéro de classe :"+res.C_Id+"Name:"+res.C_Name+"Nombre de personnes :"+res.Count);
}
//- ----------- ------Objet d'appel asynchrone-----------
function Button6_onclick() {
WebUI._Default.getClass(getClassCallBack) ;
}
function getClassCallBack( clas)
{
var res=clas.value;
alert("Numéro de classe : "+res.C_Id+" Nom : "+res.C_Name+" Nombre de personnes : "+res.Count);
}

8.
Utilisation de l'ensemble de données

//Méthode [AjaxPro.AjaxMethod] public DataSet getInfo()
return WebUI.GetDataSet.getList();
}

//--------------------De manière asynchrone appeler l'ensemble de données------ --------
function Button8_onclick() {
WebUI._Default.getInfo(getDataSetCallBack);
}
function getDataSetCallBack(res)
{
var dataset= res.value;
var strHtml="";
   strHtml +='

';
   strHtml +='        ';
   strHtml +='            ';
   strHtml + ='            < ;td>名称';
   strHtml +='            ';
   strHtml +='        ';

for(var i=0;i    {
       strHtml +='        
';
       strHtml +='            ';
       strHtml +='            ';
       strHtml +='            ';
       strHtml += '        ';
   }
   strHtml +='    
学生编号年龄
'+ dataset.Tables[0].Rows[i].stu_id +''+ dataset.Tables[0].Rows[i].stu_name +''+ dataset.Tables[0].Rows[i].stu_age +'
';
   thedata.innerHTML=strHtml;//thedata是一个

中的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中:<%=后台方法%>
fonction dit()
   {
       alert(" <%=Say()%>");
   }
   function del()
   {
        alert("<%=DeleteByID(8)%>");// DeleteByID(8)后台方法名
     }

三,采用ICallbackEventHandler回调

/**//*
* Déclarez l'interface ICallbackEventHandler Pour appeler le code serveur sur le client sans postback, vous devez déclarer l'interface et implémenter ses deux méthodes :
* RaiseCallbackEvent( ), GetCallbackResult( )
* Les paramètres de RaiseCallbackEvent() sont transmis depuis la réception. Différents codes sont exécutés en fonction des paramètres transmis et les résultats sont renvoyés à la réception avec GetCallbackResult()
.*/

//必须声明System.Web.
   //定义两个
变量
,用来接收页面传过来到操作数
   chaîne privée Num1;
   chaîne privée Num2;   protected void Page_Load (expéditeur de l'objet, EventArgs e )    {

    }

   /**////
   ///这个方法中处理回调的内容,该方法没有返回值
   ///

    /// 此参数是从客户端传过来的
   public void RaiseCallbackEvent(string eventArgument)
   {
//eventArgumeng est le paramètre passé par javascript depuis le client. Dans cet exemple, trois paramètres sont passés et séparés par "/". Chaque paramètre est retiré et stocké dans la chaîne tableau
[] PagParams = eventArgument.Split( '/');
Num1 = PagParams[1];
Num2 = PagParams[2];
//Selon le premier paramètre (opérateur sélectionné ), call Exécution différente des fonctions case "1"      ​ ​ ​Result = pision(); break; /// Cette méthode renvoie le résultat du rappel au client
///
///
public string GetCallbackResult( )
{
return Result;
}

// quatre La fonction est la fonction appelée par le rappel pour effectuer l'opération via la méthode RaiseCallbackEvent
private string add()
{
double addResult = double.Parse(Num1) + double.Parse(Num2);
return addResult.ToString();
}

chaîne privée sub()
{
double addResult = double.Parse(Num1) - double.Parse(Num2);
return addResult .ToString();
}

chaîne privée multi()
{
double addResult = double.Parse(Num1) * double.Parse(Num2);
return addResult ToString();
}

chaîne privée pision()
{
double addresult = double.Parse(Num1) / double.Parse(Num2);
return addresult.ToString ();
}
}





-->


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal