答案:表面上看去就是前端的js调用服务的C#方法,本质就是ajax,通过XMLHttpRequest对象和服务端进行交互。回调:就说回过头来调用,按理说js是一种脚本语言,怎么能用来调用服务端的呢?就是通过XMLHttpRequest实现的。

下面说一些具体的操作步骤

1.页面继承接口System.Web.UI.ICallbackEventHandler

//继承接口使得:该页面可以作为服务器上的回调事件的目录  

2.定义前端代码如下

<div>
            请输入信息:
            <input type="text" id="txtEnter" />
            <br />
            <span id="lblShow"></span>
            <br />
            <input id="btnSubmit" type="button" value="提交1" onclick="CallServer()" />

</div>

3.定义脚本

 function CallServer() {
        //获取一个DOM对象
        var inputcontrol = document.getElementById("txtEnter");
        var lab = document.getElementById("lblShow");

        //设置回调还没有处理完全时其预先加载的显示值
        lab.innerHTML = "加载中......";

        //为你在文本框中输入的信息,并且arg在这里就是将其值传递到
        //RaiseCallbackEvent(String eventArgument)方法对应的eventArgument中
        arg = inputcontrol.value;

        //获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。
        UserCallback(arg, lab);

        /*
        arg参数:表示发送的参数值;
        //context:表示一个用来接收处理数据的一个东西
        */
    }

    //result 服务端返回的数据 ;context;指的是lab对象
    function ReceiveServerData(result, context) {
        context.innerHTML = result;
        // context指的就是lab,可不可以是一个函数呢?
    }

4.后端代码如下

           //1.获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器事件的客户端回调
            string cbref = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context");

            //2.定义函数体,这个函数返回给前台调用
            string cbjs = "function UserCallback(arg,context){" + cbref + ";" + "}";

            //3.这一步关键:需要注册一个和前台同名的函数 要注册的启动脚本的类型 脚本的键
            Page.ClientScript.RegisterStartupScript(this.GetType(), "UserCallback", cbjs, true);

代码下载:http://files.cnblogs.com/Sky-cloudless/DemoCallback.zip

如何创建一个客户端回调:js获得服务端的内容?的更多相关文章

  1. socket小程序写一个客户端,实现给服务端发送hello World字符串,将客户端发送的数据变成大写后返回

    写一个客户端,实现给服务端发送hello World字符串,将客户端发送的数据变成大写后返回 本机id是192.168.xx.xy 服务端 import socket soc = socket.soc ...

  2. Vue 爬坑之路(十一)—— 基于 Nuxt.js 实现服务端渲染(SSR)

    直接使用 Vue 构建前端单页面应用,页面源码时只有简单的几行 html,这并不利于网站的 SEO,这时候就需要服务端渲染 2016 年 10 月 25 日,zeit.co 背后的团队对外发布了一个 ...

  3. MVC文件上传09-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹,并在其中创建分类子文件夹

    为用户创建专属上传文件夹后,如果想在其中再创建分类子文件夹,该怎么做?可以在提交文件的视图中再添加一个隐藏域,并设置 name="uploadContext". 相关兄弟篇: MV ...

  4. MVC文件上传06-使用客户端jQuery-File-Upload插件和服务端Backload组件自定义控制器上传多个文件

    当需要在控制器中处理除了文件的其他表单字段,执行控制器独有的业务逻辑......等等,这时候我们可以自定义控制器. MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证 ...

  5. MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传

    本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  ...

  6. Watcher详解 工作机制, Watcher客户端注册、Watcher 服务端注册

    Watcher详解.接口 在 ZooKeeper 中, 接口类 Watcher 用于表示一个标注你的事件处理器,其定义了事件通知相关的逻辑,包含 KeeperState 和 EventType 两个枚 ...

  7. 客户端技术:Cookie 服务端技术:HttpSession

    客户端技术:Cookie 服务端技术:HttpSession 07. 五 / android基础 / 没有评论   一.会话技术1.什么是会话:客户打开浏览器访问一个网站,访问完毕之后,关闭浏览器.这 ...

  8. MVC文件上传08-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹

    当需要为每个用户建立一个专属上传文件夹的时候,可以在提交文件的视图中添加一个隐藏域,并设置name="objectContext". 相关兄弟篇: MVC文件上传01-使用jque ...

  9. MVC文件上传07-使用客户端jQuery-File-Upload插件和服务端Backload组件裁剪上传图片

    本篇通过在配置文件中设置,对上传图片修剪后保存到指定文件夹. 相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  MVC文件上传02-使用HttpPostedFileB ...

随机推荐

  1. HDU1518 Square(DFS)

    Square Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  2. Jquery动画方法 jquery.animate()

    目前在学习Oracle数据库,由于刚接触,学校让练习练习HTML内容,就想起了老师以前提起过的animate方法 animate是jquery的一个方法,这个方法主要功能是能实现比较平滑的动态效果,所 ...

  3. spring的下载地址(转)

    http://hi.baidu.com/jaimy_jie/item/d699cecdc5d3a354bdef6990 SPRING官方网站改版后,建议都是通过 Maven和Gradle下载,对不使用 ...

  4. iOS - Swift NSNull 空值

    前言 public class NSNull : NSObject, NSCopying, NSSecureCoding 作为占据空间的一个空值,如用在数组或字典中占据一个没有任何值的空间. 1.NS ...

  5. new,delete和malloc,free以及allocator<T>

    一)new和delete,自己觉得一句话就是:最好同一作用域内,必须成对使用 先给出自己的认识: malloc,free,申请和释放一段heap堆中的内存. new:申请heap内存并在申请的内存中放 ...

  6. php三维数组变二维数组

    <?php $result = Array(0 => Array(0 => Array(bid => 41,brealname => 'we教官',cid => 4 ...

  7. Python学习笔记8—语句

    条件语句 有的程序里写的是 /usr/bin Python,表示 Python 解释器在/usr/bin 里面.但是,如果写成 /usr/bin/env,则表示要通过系统搜索路径寻找 Python 解 ...

  8. Longest Common Prefix

    Description: Write a function to find the longest common prefix string amongst an array of strings.( ...

  9. zabbix监控系统客户端安装

    原文:http://blog.chinaunix.net/uid-25266990-id-3387002.html 测试使用agentd监听获取数据. 服务端的安装可以查看http://blog.ch ...

  10. js倒计时天时分秒[转]

    <script language="JavaScript"> <!-- // function getQueryString(name) { var reg =n ...