> 백엔드 개발 > C#.Net 튜토리얼 > asp.net 비동기 트리거 사용(AJAX)

asp.net 비동기 트리거 사용(AJAX)

怪我咯
풀어 주다: 2017-03-31 13:20:35
원래의
1786명이 탐색했습니다.

오늘 프로젝트에서는 비동기적으로 실행해야 하기 때문에 텍스트 상자가 포커스를 잃으면 데이터베이스로 가서 확인하는 방법을 세 가지 생각해 봤습니다.

간단한 사용법 소개:

1. AjaxPro 사용

1. 프로젝트에 인용문, AjaxPro.2.dll 파일 찾기

2. Web.config의 system.web에 다음 코드를 작성합니다








3. 로딩 이벤트에서 ,
AjaxPro.Utility.RegisterTypeForAjax(typeof(class name));

을 추가합니다. 4. 작성된 모든 메소드는
[AjaxPro.AjaxMethod]로 시작하고
5. 호출 시에는

네임스페이스 클래스 이름, 메소드를 명확하게 작성해야 합니다. 예: WebUI._Default.getData() 6. 호출은 다음과 같습니다. 두 가지 Method(동기 호출, 비동기 호출)로 나누어진다
// 백그라운드에 작성된 Parameterless 메소드
[AjaxPro.AjaxMethod]
public string getStr()
{
return "hello my friends";
}
//백그라운드에 매개변수가 작성된 메서드
[AjaxPro.AjaxMethod]
public string getString(string str)
{
return str + "말하기: 안녕 친구들";

a. 동기 호출
(1) html
컨트롤
버튼으로 드래그합니다(2). 클릭하면 자동으로 표시됩니다. aspx 스크립트
(3)에 입력하려는 내용을 작성합니다
예: //--------------- ----동기 호출 매개변수 없음 ----------- function 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);
}
함수 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. 호출
객체


//객체
[AjaxPro.AjaxMethod]
공용 클래스 getClass(){ 클래스 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+"이름:"+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.
데이터셋 사용량

//Method
[AjaxPro.AjaxMethod]
public DataSet getInfo()
return WebUI.GetDataSet.getList(); }
//-------비동기적으로 데이터 세트 호출------ --------
function Button8_onclick() {
WebUI._Default.getInfo(getDataSetCallBack);
}
function getDataSetCallBack(res)
{
var 데이터 세트= res.value;
var strHtml="";
   strHtml +='

';
   strHtml +='        ';
   strHtml +='            ';
   strHtml +='           < ;td>명';
   strHtml +='            

   strHtml +='        ';

for(var i=0;i    {
       strHtml +='        
';
       strHtml +='            ';
       strHtml +='            ';
       strHtml +='            ';
       strHtml += '        ';
   }
   strHtml +='    
school生编号
'+ 데이터세트.테이블[0].Rows[i].stu_id +''+ 데이터세트.테이블[0].Rows[i].stu_name +''+ 데이터세트.Tables[0].Rows[i].stu_age +'
';
   thedata.innerHTML=strHtml;//thedata是一个

중앙의 데이터
}



9.验证码적용

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

//验证码적 사용
[AjaxPro.AjaxMethod]
public bool ValidCodeData(문자열 코드)
{
    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
   {
경고("아니요");
   }
}
AjaxPro.dll文件网上很多 ,自己下,如果找不到呢,给我发个留言,我发你邮箱



이,直接调사용:
javascript中:<%=后台方法%>
function say()
   {
       alert(" <%=Say()%>");
   }
   function del()
   {
        Alert("<%=DeleteByID(8)%>");// DeleteByID(8)后台방법명
   }

三,采用ICallbackEventHandler回调

/**//*
* ICallbackEventHandler 인터페이스 를 선언합니다. 포스트백 없이 클라이언트에서 서버 코드를 호출하려면 인터페이스를 선언하고 해당 인터페이스의 두 가지 메서드를 구현해야 합니다.
* raiseCallbackEvent( ), GetCallbackResult( )
* raiseCallbackEvent()의 매개변수는 프론트 데스크에서 전달됩니다. 전달된 매개변수에 따라 서로 다른 코드가 실행되고 그 결과는 GetCallbackResult()를 통해 프런트 데스크로 반환됩니다.
*/

//必须声明System.Web. UI.ICallbackEventHandler接口
공개 부분 클래스 _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
   //결정个回调的返回值
   private string Result;
   //정정义两个变weight,用来接收页face传过来到操작数
   private string Num1;
   private string Num2;
   protected void Page_Load (객체 발신자, EventArgs e )
   {

    }

   /**////
   /// 리回调的内容,该方法没有返回值
   ///
   /// 此参数是从客户端传过来的
   public void raiseCallbackEvent(string eventArgument)
   {
//eventArgumeng은 클라이언트에서 javascript에 의해 전달된 매개변수입니다. 이 예에서는 세 개의 매개변수가 전달되고 "/"로 구분됩니다. 각 매개변수는 배열
문자열[]에 저장됩니다. PagParams = eventArgument.Split( '/');
Num1 = PagParams[1];
Num2 = PagParams[2];
//첫 번째 매개변수에 따라(선택된 연산자 ), 호출 함수 케이스 "1"의 다른 실행      ​ ​결과 = pision() }
}

/**////
/// 이 메소드는 콜백 결과를 클라이언트에 반환합니다.
///
///
public string GetCallbackResult( )
{
return Result;
}

// 4개 함수는 콜백에서 호출되는 함수로 raiseCallbackEvent 메서드를 통해 작업을 수행합니다.
private string add()
{
double addResult = double.Parse(Num1) + double.Parse(Num2);
return addResult.ToString();
}

비공개 문자열 sub()
{
double addResult = double.Parse(Num1) - double.Parse(Num2);
return addResult .ToString();
}

비공개 문자열 multi()
{
double addResult = double.Parse(Num1) * double.Parse(Num2);
return addResult.ToString();
}

비공개 문자열 pision()
{
double addresult = double.Parse(Num1) / double.Parse(Num2);
return addresult.ToString ();
}
}





-->


위 내용은 asp.net 비동기 트리거 사용(AJAX)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿