ASP.NET Callback 回调实用讲解
一. 描述 在开发winform程序时不会考虑页面刷新问题,只要控制好线程别导致假死就ok了,但是在开发web页面程序时,刷新有的时候真是头痛的很。页面回调可以解决这个问题,下面简单就实用来讲对callback做下介绍。 二. 讲解 在网上看了很多关于原理呀什么的讲解,起初也是一头雾水,如果只是使用,不用了解那么多,那些原理在开发web网络功能时可以多了解一下,相关知识可以到网上搜一下,在这里我就简单说一下如何使用。 其实你只要走完5步就完成了,很简单: 1.设置触发事件(button 什么都行,这里用div),例如: <div style="cursor:hand;background-color:#ededed;" οnclick="fun_callbk('大家好我是王浩)">click me</div> 2.编写两个客户端函数,例如: ... function fun_callbk(msg)//这个函数就是你点击事件要触发的方法,其中就写一句话 { <%=this.ClientScript.GetCallbackEventReference(this,"msg","showMsg",null)%> //注意这里一定是双引号,单引号会出错(看着错误提示的,绝对叫你不知所以然): //你要是觉得麻烦,那就直接写最终代码: //WebForm_DoCallback('__Page',msg,showMsg,null,,null,false) ;//这个时候没有双引号哦,参数为6个 //Compiler Error Message: CS1012: Too many characters in character literal //这句话简单讲就是在客户端注册一个引用,其中的参数你可以到网上搜一下,一般使用4个参数就够了 //第一个参数:指的是page类 //第二个参数:事件触发方法的参数 //第三个参数:接收服务端返回数据的函数,下面会定义 //第四个参数:一般设为null就可以了 } function showMsg(rValue)//这个就是上面的第三个参数,接受服务端返回的值 { alert(rValue);//简单点写,弄的那么复杂大家就看迷糊了 } 3.编写服务端程序 这一步比较简单了,你必须要做的三件事: a.引用一个接口:ICallbackEventHandler,这是必须的,和前面的类或接口以,隔开(这是c#基础了) b.声明第一个函数,用于接收客户端传来的值,如下: //记住:函数名字不可以随便,必须是RaiseCallbackEvent才可以 //首先声明一个变量,方便讲解 string myStr=string.Empty; public void RaiseCallbackEvent(string arg) { myStr=arg+"hello";//还是简单的写,将客户端传来的值赋给咱新声明的变量 //加一个hello,是为了验证数据的确是有服务端处理后返回的 } c.声明另一个函数,用于将结果返回客户端 //这个函数的名字也必须是GetCallbackResult,不可以修改 public string GetCallbackResult() 好了,到这里你基本已经完成了! 三. 做一下总结 其实就用到4个方法,fun_callbk(),showMsg(),GetCallbackResult(),RaiseCallbackEvent() 需要添加一个引用:<%=this.ClientScript.GetCallbackEventReference(this,"arg,"showMsg",null)%> 需要继承一个接口:ICallbackEventHandler 就这些,你可以简单的这样理解: fun_callbk()将客户端的值传给服务端的RaiseCallbackEvent();服务端处理完后通过GetCallbackResult()将值又返回客户端的showMsg(),就OK了 |
转载于:https://www.cnblogs.com/pengyou8696/archive/2010/12/09/1901196.html
ASP.NET Callback 回调实用讲解相关推荐
- 解决异步问题,教你如何写出优雅的promise和async/await,告别callback回调地狱!
解决异步问题--promise.async/await 一.单线程和异步 1.单线程是什么 2.为什么需要异步 3.使用异步的场景 二.promise 1.promise的三种状态 2.三种状态的表现 ...
- java web自定义监听器_Android自定义监听器Listener(自定义Java Callback回调事件)
Callback回调事件介绍 Java或Android中创建异步回调最普遍的做法就是使用listener监听器或者observer观察者模式来解决,listener回调事件通常用于实现一个代码去监听另 ...
- 【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )
Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...
- javascript~callback回调函数
函数是对象,所以它可以作为一个参数传递给其他函数. 回调函数作为一个参数传递给其他函数时是没有括号的,只有函数名:使用括号表示立即执行回调函数callback.我们只希望传递一个函数的引用,让其他函数 ...
- js接收php 回调,JS callback回调函数的使用(附代码)
这次给大家带来JS callback回调函数的使用(附代码),JS callback回调函数使用的注意事项有哪些,下面就是实战案例,一起来看一下. 在使用开源项目的时候经常会使用到回调函数,如果把回调 ...
- GetCallbackEventReference实用讲解
一. 描述 在开发winform程序时不会考虑页面刷新问题,只要控制好线程别导致假死就ok了,但是在开发web页面程序时,刷新有的时候真是头痛的很.页面回调可以解决这个问题,下面简单就实用来讲对cal ...
- C#基础- Callback 回调
这个是2011年写的一个技术贴,现在看可能有点过时了,有兴趣的朋友也可以看一下. 一. 描述 在开发winform程序时不会考虑页面刷新问题,只要控制好线程别导致假死就ok了,但是在开发web页面程序 ...
- asp.net 客户端回调功能的实现机制探讨(响应部分及可能的优化)
上一部分说道在发送前,已经将回调函数赋值成 xmlRequest.onreadystatechange=WebForm_CallbackComplete; 那么咱们就先来看看这个callback方法. ...
- Android程序中回调的讲解和使用
什么是回调: 回调函数就是通过函数指针(Android中的引用)调用的函数. 如果你把参数指针作为参数传递给另外一个函数,当这个指针被用来调用其指向的函数时,我们就说这是回调函数.回调函数不是由该函数 ...
最新文章
- Faster-RCNN训练时遇到的问题
- scenejs的一点Cameras小笔记
- mysql三:表操作
- 项目经理有必要学python吗_项目经理到底要不要懂技术
- 创建SpringBoot项目时出现Cannot resolve plugin org.springframework的解决方法
- GeoServer地图开发解决方案(三):部署地图数据篇
- Mybatis resultMap空值映射问题解决
- 欧易OKEx交易大数据:BTC合约多空持仓人数比0.98,合约持仓总量为24.90亿美元
- Runtime之方法
- 2008 r2彻底删除 server sql_sql2008完全卸载工具 彻底完全卸载SQL server2008
- 八大排序算法(5)——快速排序
- Zemax学习笔记(5)- 设计单透镜实例_2,分析
- 从零开始学习Java的简单步骤和方法技巧
- android 空调遥控,安卓版万能空调遥控器
- SILKY MIRACLE宣布奚梦瑶为品牌代言人
- 计算机深度休眠以后怎么唤醒,电脑进入深度睡眠,肿么唤醒?
- 出现nginx: [emerg] unknown directive “]“ in /usr/local/openresty/nginx/conf/nginx.conf:74
- adb shell cmd appops
- 3:输出名言“贵有恒,何必三更起五更睡:最无益,只怕一日曝十日寒。”
- element 表格全选,,翻页选中取消相关效果
热门文章
- ECCV 2020 论文大盘点-视频理解与分类篇
- 超分辨率算法大战!AI in RTC 创新挑战赛——20万巨奖等你来拿!
- 李飞飞组开源大型室内场景的模拟环境iGibson
- 神器:多卡同步的Batch Normalization
- Opencv4.5.5 + Opencv4.5.5_contrib 图像拼接
- Python数据分析模块 | pandas做数据分析(一):基本数据对象
- php中的oop,在现有PHP中加入OOP
- android+对象池使用,Android开发中对高并发对象池的重复利用
- Centos 安装 JDK8
- Jenkins时区设置为北京时间