这个是2011年写的一个技术贴,现在看可能有点过时了,有兴趣的朋友也可以看一下。

一. 描述

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

二. 讲解

在网上看了很多关于原理呀什么的讲解,起初也是一头雾水,如果只是使用,不用了解那么多,那些原理在开发web网络功能时可以多了解一下,相关知识可以到网上搜一下,在这里我就简单说一下如何使用。

其实你只要走完5步就完成了,很简单:

1.设置触发事件,例如:

<div onclick="fun_callbk('大家好我是王东银)">click me</div>

2.编写两个客户端函数,例如:

...

function fun_callbk(msg)//这个函数就是你点击事件要触发的方法,其中就写一句话

{

<%=this.ClientScript.GetCallbackEventReference(this,"msg","showMsg",null)%>

//这句话简单讲就是在客户端注册一个引用,其中的参数你可以到网上搜一下,一般使用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了

C# Callback 回调实用讲解 [原创]的更多相关文章

  1. JavaScript Callback 回调函数

    JavaScript callback回调函数 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货.在这 ...

  2. v-if和v-show的区别以及callback回调函数的体会

    今天总结一下最近一周碰到的一些问题 一.v-if和v-show的区别 v-show用的是css属性中的display="block/none",元素被隐藏了但是节点还在页面中,但是 ...

  3. js中promise解决callback回调地狱以及使用async+await异步处理的方法

    1.callback回调地狱 function ajax(fn) { setTimeout(()=> { console.log('你好') fn() }, 1000) } ajax(() =& ...

  4. 关于js的callback回调函数的理解

    回调函数的处理逻辑理解:所谓的回调函数处理逻辑,其实就是先将回调函数的代码 冻结(或者理解为闲置),接着将这个回调函数的代码放到回调函数管理器的队列里面. 待回调函数被触发调用的时候,对应的回调函数的 ...

  5. callback回调函数的理解

    callback采用的设计模式是:模板模式,他的设计理念是基于面向对象中的多态的. 我们的程序中走到某个地方他会出现不一样的动作的时候,我们在这儿就使用回调函数.我们利用的就是 多态的原理,我们传递不 ...

  6. callback 回调函数

    把函数a当做一个参数传入函数b <script> Array.prototype.mysort = function(callback){ let s = this; //准备向回调函数里 ...

  7. callback回调函数-python

    链接:http://www.zhihu.com/question/19801131/answer/27459821来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 编程分 ...

  8. callback回调函数【转】

    请给作者点赞--> 原文链接 什么是回调函数? 我们绕点远路来回答这个问题. 编程分为两类:系统编程(system programming)和应用编程(application programmi ...

  9. callback回调函数理解 相当于this指针

    1.callback函数在微软的官方手册中是这样定义callback函数的:“callback函数是由应用程序定义而由操作系统调用的函数”.   凡是由用户设计而却由windows系统调用的函数,统称 ...

随机推荐

  1. 封装一个MongoDB的 asp.net 链接类

    using System; using System.Collections.Generic; using System.Linq; using MongoDB; /// <summary> ...

  2. bootm命令中地址参数,内核加载地址以及内核入口地址

    bootm命令只能用来引导经过mkimage构建了镜像头的内核镜像文件以及根文件镜像,对于没有用mkimage对内核进行处理的话,那直接把内核下载到连接脚本中指定的加载地址0x30008000再运行就 ...

  3. Axis2 WebService(基于REST风格)

    http://www.lifeba.org/arch/java_axis2_webservice_rest.html Axis2除了提供传统的webservice方法外,还提供了对Rest的支持.Ax ...

  4. TextField笔记

    今天写scrollPanel组件,碰到一个问题:textfield自动什么时候会调节高度. 在创建TextField的时候,我制定了文本的height属性. 之后,无论怎么设置文本,height总是不 ...

  5. asp.net mvc3+EF4.1项目实战

    ASP.NET身份验证机制membership入门——配置篇(1) http://www.cnblogs.com/xlb2000/archive/2010/05/10/1729076.html 1.添 ...

  6. 五指CMS发布,主打高性能

    近日,五指CMS正式发布.给沉静已久的国内 CMS 行业引来不少的关注.五指CMS由原PHPCMS v9的负责人王参加主导开发.我们可以看到,由于移动互联网以及大数据的崛起,个人站长市场的逐渐减少,国 ...

  7. 洛谷P1294 高手去散步

    洛谷1294 高手去散步 题目背景 高手最近谈恋爱了.不过是单相思.“即使是单相思,也是完整的爱情”,高手从未放弃对它的追求.今天,这个阳光明媚的早晨,太阳从西边缓缓升起.于是它找到高手,希望在晨读开 ...

  8. 2014年Tizen开发者峰会上海征稿启事!

    本次征稿面向大中华用户: “Tizen开发者,应用程序开发人员.isv平台设计师.运营商.厂商.硬件厂商.软件厂商,开源爱好者,和从事Tizen的工作人员” 2014年Tizen开发者峰会 这一次,亚 ...

  9. HW2.22

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  10. HDU1247 - Hat’s Words(Trie树)

    题目大意 给定一些单词,要求你把所有的帽子单词找出来,如果某个单词恰好由另外两个单词连接而成,那么它就是帽子单词 题解 先把所有单词插入到Trie树,然后判断每个单词是不是帽子单词,做法就是:对于第i ...