一. 描述

在开发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()
    {
        return myStr;//将结果返回客户端
    }

好了,到这里你基本已经完成了!

三. 做一下总结

其实就用到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 回调实用讲解相关推荐

  1. 解决异步问题,教你如何写出优雅的promise和async/await,告别callback回调地狱!

    解决异步问题--promise.async/await 一.单线程和异步 1.单线程是什么 2.为什么需要异步 3.使用异步的场景 二.promise 1.promise的三种状态 2.三种状态的表现 ...

  2. java web自定义监听器_Android自定义监听器Listener(自定义Java Callback回调事件)

    Callback回调事件介绍 Java或Android中创建异步回调最普遍的做法就是使用listener监听器或者observer观察者模式来解决,listener回调事件通常用于实现一个代码去监听另 ...

  3. 【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

  4. javascript~callback回调函数

    函数是对象,所以它可以作为一个参数传递给其他函数. 回调函数作为一个参数传递给其他函数时是没有括号的,只有函数名:使用括号表示立即执行回调函数callback.我们只希望传递一个函数的引用,让其他函数 ...

  5. js接收php 回调,JS callback回调函数的使用(附代码)

    这次给大家带来JS callback回调函数的使用(附代码),JS callback回调函数使用的注意事项有哪些,下面就是实战案例,一起来看一下. 在使用开源项目的时候经常会使用到回调函数,如果把回调 ...

  6. GetCallbackEventReference实用讲解

    一. 描述 在开发winform程序时不会考虑页面刷新问题,只要控制好线程别导致假死就ok了,但是在开发web页面程序时,刷新有的时候真是头痛的很.页面回调可以解决这个问题,下面简单就实用来讲对cal ...

  7. C#基础- Callback 回调

    这个是2011年写的一个技术贴,现在看可能有点过时了,有兴趣的朋友也可以看一下. 一. 描述 在开发winform程序时不会考虑页面刷新问题,只要控制好线程别导致假死就ok了,但是在开发web页面程序 ...

  8. asp.net 客户端回调功能的实现机制探讨(响应部分及可能的优化)

    上一部分说道在发送前,已经将回调函数赋值成 xmlRequest.onreadystatechange=WebForm_CallbackComplete; 那么咱们就先来看看这个callback方法. ...

  9. Android程序中回调的讲解和使用

    什么是回调: 回调函数就是通过函数指针(Android中的引用)调用的函数. 如果你把参数指针作为参数传递给另外一个函数,当这个指针被用来调用其指向的函数时,我们就说这是回调函数.回调函数不是由该函数 ...

最新文章

  1. Faster-RCNN训练时遇到的问题
  2. scenejs的一点Cameras小笔记
  3. mysql三:表操作
  4. 项目经理有必要学python吗_项目经理到底要不要懂技术
  5. 创建SpringBoot项目时出现Cannot resolve plugin org.springframework的解决方法
  6. GeoServer地图开发解决方案(三):部署地图数据篇
  7. Mybatis resultMap空值映射问题解决
  8. 欧易OKEx交易大数据:BTC合约多空持仓人数比0.98,合约持仓总量为24.90亿美元
  9. Runtime之方法
  10. 2008 r2彻底删除 server sql_sql2008完全卸载工具 彻底完全卸载SQL server2008
  11. 八大排序算法(5)——快速排序
  12. Zemax学习笔记(5)- 设计单透镜实例_2,分析
  13. 从零开始学习Java的简单步骤和方法技巧
  14. android 空调遥控,安卓版万能空调遥控器
  15. SILKY MIRACLE宣布奚梦瑶为品牌代言人
  16. 计算机深度休眠以后怎么唤醒,电脑进入深度睡眠,肿么唤醒?
  17. 出现nginx: [emerg] unknown directive “]“ in /usr/local/openresty/nginx/conf/nginx.conf:74
  18. adb shell cmd appops
  19. 3:输出名言“贵有恒,何必三更起五更睡:最无益,只怕一日曝十日寒。”
  20. element 表格全选,,翻页选中取消相关效果

热门文章

  1. ECCV 2020 论文大盘点-视频理解与分类篇
  2. 超分辨率算法大战!AI in RTC 创新挑战赛——20万巨奖等你来拿!
  3. 李飞飞组开源大型室内场景的模拟环境iGibson
  4. 神器:多卡同步的Batch Normalization
  5. Opencv4.5.5 + Opencv4.5.5_contrib 图像拼接
  6. Python数据分析模块 | pandas做数据分析(一):基本数据对象
  7. php中的oop,在现有PHP中加入OOP
  8. android+对象池使用,Android开发中对高并发对象池的重复利用
  9. Centos 安装 JDK8
  10. Jenkins时区设置为北京时间