zoukankan      html  css  js  c++  java
  • ASP.NET Callback 回调实用讲解

    一. 描述

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

    二. 讲解

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

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

    1.设置触发事件(button 什么都行,这里用div),例如:

    <div style="cursor:hand;background-color:#ededed;" onclick="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了

  • 相关阅读:
    python 类型注解
    python 装饰器
    python 高阶函数、柯里化
    python 生成器函数
    python 递归和匿名函数
    Python 函数返回值、作用域
    Python 练习题总结(待续)
    基于 K8S 集群安装部署 istio-1.2.4
    基于 kubeadm 部署 kubernetes(v1.17.0) 集群
    Gitlab 重置 root 密码
  • 原文地址:https://www.cnblogs.com/pengyou8696/p/1901196.html
Copyright © 2011-2022 走看看