虽然已经有了ASP.NET AJAX了,最近学习ASP.NET控件的时候,逐步理解了原始的控件异步回调(代码取自《ASP.NET 2.0 高级编程》): 首先,在Render事件中添加好一个事件。

protected override void RenderContents(HtmlTextWriter output) {  output.RenderBeginTag(HtmlTextWriterTag.Div);  output.AddAttribute(HtmlTextWriterAttribute.Type, "text");  output.AddAttribute(HtmlTextWriterAttribute.Id, this.ClientID);  output.AddAttribute(HtmlTextWriterAttribute.Name, this.ClientID);  output.AddAttribute(HtmlTextWriterAttribute.Value, this.Text);  output.AddAttribute("OnBlur", "ClientCallback();");  this.AddAttributesToRender(output);  output.RenderBeginTag(HtmlTextWriterTag.Input);  output.RenderEndTag();  output.RenderEndTag(); }

这里最重要的就是output.AddAttribute("OnBlur","ClientCallback();");

然后在OnPreRender事件中,添加如下代码:

protected override void OnPreRe nder(EventArgs e) { //Page.ClientScript.RegisterClientScriptInclude("UtilityFunctions", "JScript.js"); Page.ClientScript.RegisterStartupScript(typeof(Page), "ControlFocus", "document.getElementById('" + this.ClientID + "').focus();", true); Page.ClientScript.RegisterStartupScript(typeof(Page),"ClientCallback","function ClientCallback() {"+"args=document.getElementById('"+this.ClientID+"').value;"+Page.ClientScript.GetCallbackEventReference(this,"args","CallbackHandler",null,"ErrorHandler",true)+"}"); //向服务器发送请求,由服务器端生成回调的客户端脚本。 }

也就是在服务器端生成客户端代码,注意最后一个方法GetCallbackEventReference,我理解的是在服务器端捕捉了客户端的请求之后,生成相应的客户端脚本,在服务器端回调的时候,客户端决定用什么函数处理回调和错误。

服务器端实现接口的一个方法,也就是接收到客户端的请求之后,由服务器端先处理,然后再把结果和相应代码发回客户端。

#region ICallbackEventHandler Members public string RaiseCallbackEvent(string eventArgument) {  int result;  if (!Int32.TryParse(eventArgument, out result))  throw new Exception("The method is not implemented."); return "Valid Data"; } #endregion

最后,在jscript.js文件中写好相应的回调处理函数即可:

var args; var ctx; function ValidateText(ctl) {  if(ctl.value=='')  { alert("Please enter a value"); ctl.focus();  } } function CallbackHandler(args,ctx) {  alert("The data is valid"); } function ErrorHandler(args,ctx) {  alert("The data is not a number"); }

转载于:https://www.cnblogs.com/webnet/archive/2009/03/22/1418842.html

ASP.NET 2.0中控件的简单异步回调相关推荐

  1. ASP.NET2.0中控件的简单异步回调

    虽然已经有了ASP.NET AJAX了,最近学习ASP.NET控件的时候,逐步理解了原始的控件异步回调(代码取自<ASP.NET 2.0 高级编程>): 首先,在Render事件中添加好一 ...

  2. DateChooser控件发布ASP.NET 2.0新版(我的ASP.NET 2.0控件开发书的第二个阶段项目)[请大家一定注意版本的更新,下载最新版]...

    已更新实用版:DateChooser ASP.NET 2.0版 之实用版 请大家一定注意版本的更新,下载最新版 DateChooser的ASP.NET 1.x版在二年前就发布了,二年以来,ASP.NE ...

  3. asp.net 2.0控件开发电子书 下载

    现在能安安静静地写点东西的人不多了,当看到 Clingingboy 写文章的时候,感到很欣慰.写的内容不错,以前我好像是做过一个电子书,但是很粗糙,Clingingboy 建议我改得好点,一直没有时间 ...

  4. ASP.NET中DropDownList控件的简单使用--DDL绑定数据库表中值,选择DDL中值直接检索数据...

    1.在.aspx页面拖入DropDownList控件 <label class="txt-green">校区:</label> <asp:DropDo ...

  5. ASP.NET中利用控件实现简单的登录界面

    前言 我得先说一下,我的网页大多依赖asp.net的控件使用,没有系统学过C#.HTML,但也知道一点.所以如果有些地方写的不好,不足的还请谅解,当然也欢迎评论,也许可以在评论中再增长一些知识. 基础 ...

  6. asp.net服务器端对话框控件的简单实现(附源码)

    最近项目要用到一个对话框控件,正好自己从前写了一个,拿了出来,看着自己从前写的东西,唏嘘不已. 下面是一个精简版的源代码,release在这里,谁喜欢,自己编译成dll吧. http://files. ...

  7. asp.net gridview itemtemplate中控件事件获取行参数

    gridview中加入了一列linkbutton,但是在rowcommand事件中,不能读取出来其中的行(e.commandAgurments),通过查阅资料,发现可以这么解决. protected ...

  8. 动手做ASP.NET 2.0服务器端控件——AutoCheckTreeView(二)接口设计

    感谢谭振林先生所著<道不远人--深入解析ASP.NET 2.0控件开发> 讨论完了功能,我们来思考一下这个控件应该怎么设计. 1,给控件取个名字吧,因为一开始小凡只是考虑了自动勾选功能,所 ...

  9. Asp.net MVC2.0系列文章-编辑和删除新闻操作

    上一篇文章,我们简单地完成了新闻内容的展示功能(Asp.net MVC2.0系列文章-显示列表和详细页面操作),此篇文章,我们使用Asp.net MVC2.0实现新闻记录的编辑和删除功能. 创建Vie ...

最新文章

  1. 11210怎么等于24_【Python】鸡兔同笼怎么“妙解”?
  2. OS - MMAP初探
  3. 关于毕业租房的一些碎碎念。
  4. MVC视图中处理Json
  5. koa --- restful规范及其栗子
  6. 华为快应用 阻止事件冒泡
  7. 快速实现NBIOT UDP通信
  8. python 3D绘制立体几何
  9. hecto - 手把手教你写个 文本编辑器
  10. 全自动调节灯光强度的实现(仿真+程序+文档)
  11. 元宇宙 - 圈里的百科
  12. consul java_集成Consul负载均衡多实例注册_java_天雨流芳-CSDN博客
  13. Texworks中文论文编辑排版优秀
  14. mysql 统计SQL
  15. Windows启动原理
  16. Git和SVN的区别与联系
  17. Python学习之路-基础知识2-文件操作
  18. Java策略模式项目中的运用
  19. 5岁儿童自学python编程-Python真好玩:教孩子学编程 PDF 完整原版
  20. 深入理解C语言类型转换

热门文章

  1. html5 js选择器,使用HTML5的JS选择器操作页面中的元素
  2. PHP快速导入,php快速导入大量数据的实例方法
  3. 磁盘io php,PHP CURL如何处理上传内存中文件,避免磁盘IO开销
  4. windowsphone开发_十大混生开发框架
  5. 高内聚低耦合_高渗透环氧树脂灌浆料
  6. python对象底层原理_Python字符串对象实现原理详解
  7. 《c语言从入门到精通》看书笔记——第16章 网络套接字编程(上)——网络
  8. 第三方软件源_手机上的天气软件哪个更准确?
  9. 内网通修改积分文件_转盘抽奖分享得积分,你是如何防止页面被恶意刷新的
  10. 20220129CTF刷题-- WEB方向