0

0

asp.net异步触发用法(AJAX)

怪我咯

怪我咯

发布时间:2017-03-31 13:20:35

|

1958人浏览过

|

来源于php中文网

原创

今天做项目中,由于要异步触发,就是当文本框失去焦点时到数据库去检查一次,然后就想起了三种方式。

简单介绍下它的用法:

一.ajaxpro的使用

1.在项目中添加引用,浏览找到ajaxpro.2.dll文件

2.在web.config中的system.web里面写入以下代码


 
       
     


/configuration>

3.在加载事件中,加入
 ajaxpro.utility.registertypeforajax(typeof(类名));

4.写的方法都要用
[ajaxpro.ajaxmethod]开头,然后在写方法

5.调用时必须写清楚
命名空间名.类名.方法,例:webui._default.getdata();

6.调用可分两中方法(同步调用,异步调用)

//在后台写的无参方法
[ajaxpro.ajaxmethod]
public string getstr()
{
       return  "hello my friends";
}
//在后台写的有参方法
[ajaxpro.ajaxmethod]
public string getstring(string str)
{
    return str + "say: hello my friends";
}

a.同步调用
(1).拖入html控件button
(2).双击,自动显示在.aspx的脚本中
(3).在里面写入你要输入的内容
例:
//------------------同步调用无参-----------
 function button1_onclick()
 {
        var res=webui._default.getstr();
        alert(res.value);
 }

//------------------同步调用有参------------
function button2_onclick() //textbox1为服务器控件
{
   var str=document.getelementbyid("").value;
   var res=webui._default.getstr(str);
   alert(res.value);
}

b.异步调用
(1).拖入html控件button
(2).双击,自动显示在.aspx的脚本中
(3).在里面写入你要输入的内容
例:
//-----------------异步调用无参-----------------
function button3_onclick() {
   webui._default.getstr(getstrcallback);
}
function getstrcallback(res)
{
   alert(res.value);
}
//-----------------异步调用有参-----------------
function button4_onclick() {
   var str=document.getelementbyid("").value;
   webui._default.getstring(str,getstringcallback);
}
function getstringcallback(res)
{
   alert(res.value);
}

7.调用对象

//对象
[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+"名称:"+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.getdataset.getlist();
       }

//--------------------异步调用数据集--------------
function button8_onclick() {
   webui._default.getinfo(getdatasetcallback);
}
function getdatasetcallback(res)
{
   var dataset=res.value;
   var strhtml="";
   strhtml +='

';
   strhtml +='        ';
   strhtml +='            ';
   strhtml +='            ';
   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("").value;
   var bool=WebUI._Default.ValidCodeData(code).value;
   if(bool==true)
   {
       alert("ok");
   }else
   {
       alert("no");
   }
}
AjaxPro.dll文件网上很多的,自己下,如果找不到呢,给我发个留言,我发你邮箱



二,直接调用:
javascript中:
function says()
   {
       alert("");
   }
   function del()
   {
        alert("");//DeleteByID(8)后台方法名
   }

三,采用ICallbackEventHandler回调

/**//*
* 对ICallbackEventHandler接口进行声明,要在客户端调用服务端代码而不回发,必须声明该接口并且实现它的两个方法:
* 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 sender, EventArgs e)
   {

    }

   /**////
   /// 该方法是回调执行的方法,根据参数在这个方法中处理回调的内容,该方法没有返回值
   ///

   /// 此参数是从客户端传过来的
   public void RaiseCallbackEvent(string eventArgument)
   {
       //eventArgumeng 为javascript从客户端传递的参数,本例传过来三个参数用“/”分割将每个参数取出存入
     

/configuration>

3.在加载事件0
       string[] PagParams = eventArgument.Split('/');
        Num1 = PagParams[1];
        Num2 = PagParams[2];
       //根据第一个参数(所选的
     

/configuration>

3.在加载事件1),调用不同的执行
     

/configuration>

3.在加载事件2
       switch (PagParams[0])
       {
           case "0":
                Result = add(); break;
           case "1":
                Result = sub(); break;
           case "2":
                Result = multi(); break;
           case "3":
                Result = pision(); break;
        }
    }

   /**////
   /// 该方法是返回回调的结果给客户端
   ///

   ///
   public string GetCallbackResult()
   {
       return Result;
    }

   //一下四个函数是通过RaiseCallbackEvent方法,调用的回调要执行操作的函数
   private string add()
   {
       double addResult = double.Parse(Num1) + double.Parse(Num2);
       return addResult.ToString();
    }

   private string sub()
   {
       double addResult = double.Parse(Num1) - double.Parse(Num2);
       return addResult.ToString();
    }

   private string multi()
   {
       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();
    }
}

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

0

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

0

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

0

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

0

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

19

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

16

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

17

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

2

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ASP.NET参考手册
ASP.NET参考手册

共0课时 | 0人学习

传播智客ASP.NET中级系列视频教程
传播智客ASP.NET中级系列视频教程

共33课时 | 6.4万人学习

传播智客ASP.NET高级系列视频教程
传播智客ASP.NET高级系列视频教程

共34课时 | 6.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号