ArcGIS Web ADF开发中较多的使用了GetCallbackEventReference方法,由于本人是AJAX菜鸟,本着从小李子(例子)开始的精神,找到了如下一个例子:

(代码源自MIDI大侠的博客:http://www.cnblogs.com/yinhaiming/articles/1486100.html)

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test_ajax.aspx.cs" Inherits="test_ajax" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title>无标题页</title><script type="text/javascript">function onclickfun(a){document.getElementById("tb1").value=a;    }</script>
</head>
<body><form id="form1" runat="server"><div><asp:TextBox ID="tb1" runat="server"></asp:TextBox></div></form>
</body>
</html>
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;public partial class test_ajax : System.Web.UI.Page, ICallbackEventHandler
{private string callbackResult = string.Empty;protected void Page_Load(object sender, EventArgs e){if (!IsCallback){ string callbackMethod = this.Page.ClientScript.GetCallbackEventReference(this, "document.getElementById('tb1').value", "onclickfun", "this.value");tb1.Attributes.Add("OnClick", callbackMethod);}}public string GetCallbackResult() {return callbackResult;}public void RaiseCallbackEvent(string eventArgument){callbackResult = eventArgument + DateTime.Now.ToString();}
}

运行后,页面上出现一个文本框,点击文本框,文本框中显示当前日期,再点击,当前日期续在上一个日期之后。分析运行过程:(1)鼠标点击文本框,这个操作被callbackMethod所捕获,因为tb1.Attributes.Add("OnClick", callbackMethod); 一句建立了两者之间的关系;(2)然后document.getElementById('tb1').value通过eventArgument被传递给RaiseCallbackEvent函数,获取服务器当前日期;(3)接下来是GetCallbackResult,传递callbackResult给onclickfun,数据重新回到客户端(4)onclickfun更新文本框的值那么ajax体现在哪里呢,按照postback的机制,客户端点击,服务端响应日期,客户端接收(同时伴随着刷新)。(局部刷新只是表象,本质特征是数据无刷新传递)所以关键是传递数值给onclickfun这一步。相当于走小门回来的,谁都不知道。。

转载于:https://www.cnblogs.com/chica/archive/2010/11/02/1867203.html

Ajax step by step相关推荐

  1. 【Step By Step】将Dotnet Core部署到Docker下

    一.使用.Net Core构建WebAPI并访问Docker中的Mysql数据库 这个的过程大概与我之前的文章<尝试.Net Core-使用.Net Core + Entity FrameWor ...

  2. python写一个通讯录step by step V3.0

    python写一个通讯录step by step V3.0 更新功能: 数据库进行数据存入和读取操作 字典配合函数调用实现switch功能 其他:函数.字典.模块调用 注意问题: 1.更优美的格式化输 ...

  3. C#2.0实例程序STEP BY STEP--实例二:数据类型

    C#2.0实例程序STEP BY STEP--实例二:数据类型 与其他.NET语言一样,C#支持Common Type Sysem(CTS),其中的数据类型集合不仅包含我们熟悉的基本类型,例如int, ...

  4. 文本分类step by step(二)

    (注:如有转载请标明作者:finallyliuyu, 和出处:博客园) <文本分类 step by step(一)> 在<文本分类step by step(一)>中,我们从处理 ...

  5. 数据库设计Step by Step (9)——ER-to-SQL转化

    2019独角兽企业重金招聘Python工程师标准>>> 引言:前文(数据库设计 Step by Step (8)--视图集成)讨论了如何把局部ER图集成为全局ER图.有了全局ER图后 ...

  6. ActionScript 3.0 Step By Step系列(五):走在面向对象开发的路上,以类为基础去思考编程问题...

    面向对象的程序设计(Object-Oriented Programming,简记为OOP)是一种功能非常强大的编程方法,立意于创建软件重用代码,以类为基础去思考编程问题. ActionScript 3 ...

  7. NHibernate Step by Step:序篇 (转)

    原文出处:http://www.cnblogs.com/abluedog/archive/2006/04/15/375676.html 原文作者:abluedog 很久以前,你可能习惯了connect ...

  8. Python 调试:step into/step out/step over 的区别

    Python 调试:step into/step out/step over 的区别: 首先在PyCharm 程序中设置 " 断点 ",后点击右上角的Debug 按钮进入调试程序状 ...

  9. Caffe使用step by step:caffe框架下的基本操作和分析

    Caffe使用step by step:caffe框架下的基本操作和分析 时间:2015-10-16 11:40:09      阅读:808      评论:0      收藏:0      [点我 ...

  10. 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 1 Convolutional Neural Networks: Step by Step

    吴恩达deeplearning.ai课程作业,自己写的答案. 补充说明: 1. 评论中总有人问为什么直接复制这些notebook运行不了?请不要直接复制粘贴,不可能运行通过的,这个只是notebook ...

最新文章

  1. 近段时间学习html和CSS的一些细碎总结
  2. 谷歌发布全新设计语言:跟苹果Swift天壤之别
  3. MPI 集合通信函数 MPI_Reduce(),MPI_Allreduce(),MPI_Bcast(),MPI_Scatter(),MPI_Gather(),MPI_Allgather(),MPI_S
  4. 废旧光盘手工小制作_废旧光盘没有用,只能扔?这些光盘改造的小手工就很惊艳,附教程...
  5. pandas数据可视化_5利用Pandas进行强大的可视化以进行数据预处理
  6. 图结构练习——BFSDFS——判断可达性
  7. python 表格查询_python单表查询
  8. JavaScript级联国家地区
  9. springboot项目实现定时任务,使用标签@Scheduled
  10. [特约· Keso ·东拉西扯] 我眼中的乔布斯
  11. Java业务代理模式~
  12. POJ 1451 T9 (字典树好题)
  13. 【持续更新】微电子专业术语常用缩写英汉对照
  14. oracle恢复删除的表
  15. CERC 2014 B Mountainous landscape - 线段树 - 凸包 - 三分
  16. matlab平行线的中线,cad怎么画两条平行线的中线
  17. java的jdk安装教程附百度网盘链接环境配置遇到的各种问题版本选择
  18. 内网穿透工具-venom
  19. 2021MySQL面试题
  20. 卷积神经网络卷积,池化,全连接--笔记01

热门文章

  1. php unset 多可以什么_php unset()销毁单个或多个变量
  2. 二叉树的后序遍历Python解法
  3. php基础小结,PHP基础学习小结
  4. 以太坊在哪里买_DeFi只是以太坊的开胃小菜,以太坊2.0才是重头戏
  5. python敏感词过滤代码简单_大型企业都在用,Python实现敏感词过滤
  6. 电脑手写输入法_QQ拼音输入法除了能打字,竟然还有 N 多妙用!
  7. 福师计算机辅助设计1 ps 在线作业二,福师《计算机辅助设计1(PS)》在线作业一100分答案...
  8. HDLBits答案(4)_如何避免生成锁存器?
  9. html元素以开始标签起始,HTML文本
  10. 码云上传代码添加标签_[Android] 发布码云(Gitee)项目到JitPack(最全完整流程)