文谷首页 | 业界传真 | 网络技术 | 服务器 | 数据库 | 存储技术 | 系统安全 | 无线技术 | Cisco | .Net | Windows | Linux | Unix | Java
电子商务 | 网站工程 | 网页设计 | 平面设计 | 多媒体 | 编程语言 | Oracle | MSSQL | Photoshop | ASP | PHP | 实用技巧 | 进程查询 | 文谷论坛
 websphere   .net framework
您现在的位置: IT文谷 >> 开发平台 >> .net framework >> ASP.NET >> 文章正文
Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的
Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的
Asp.net中服务端控件事件是如何触发的

Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的

  Asp.net 中在客户端触发服务端事件分为两种情况:
  
  一.   WebControls中的Button 和HtmlControls中的Type为submit的HtmlInputButton
  

  这两种按钮最终到客户端的表现形式为: <input name="Submit1" id="Submit1" type="submit" value=”Submit”>,这是Form表单的提交按钮,点击以后会作为参数发送到服务端,参数是这样的: 控件的name属性=控件的value值,对应上面的例子就是:Submit1= Submit。 服务端会根据接收到的控件的name属性的这个key来得知是这个按钮被点击了,从而在服务端触发这个按钮的点击事件。
  
  二.   HtmlControls 中的 Type为button的HtmlInputButton 和其它所有的控件事件,比如LinkButton点击,TextBox的Change事件等等:
  

  这些事件在客户端产生后会经过一个统一的机制发送到服务端。
  
  1.    首先asp.net页框架会使用两个Hidden域来存放表示是哪个控件触发的事件,以及事件的参数:
  
  <!—表示触发事件的控件,一般是这个控件的name -->
  
  <input type="hidden" name="__EVENTTARGET" value="" />
  
  <!—表示触发事件的参数,一般是当某个控件有两个以上的事件时,用来区别是哪个事件 -->
  
  <input type="hidden" name="__EVENTARGUMENT" value="" />
  
  2.    服务端会生成一个jscript的方法来处理所有这些事件的发送,这段代码是:
  
  <script language="javascript">
  
  <!--
  
  function __doPostBack(eventTarget, eventArgument) {
  
  var theform = document.WebForm2;
  
  theform.__EVENTTARGET.value = eventTarget;
  
  theform.__EVENTARGUMENT.value = eventArgument;
  
  theform.submit();
  
  }
  
  // -->
  
  </script>
  
  3.    每个会引发服务端事件的控件都会在响应的客户端事件中调用上面的代码:
  
  比如,HtmlControls 中的 Type为button的HtmlInputButton的点击事件
  
  <!—客户端的点击事件调用__doPostBack,eventTarget 参数为'Button2',表示是name为'Button2’控件触发的事件,eventArgument 为空,表示这个Type为button的HtmlInputButton只有一个客户端触发的服务端事件-->
  
  <input language="javascript" onclick="__doPostBack('Button2','')" name="Button2" id="Button2" type="button" value="Button" />
  
  又比如,TextBox控件的Change事件
  
  <!—客户端的onchange事件调用__doPostBack,eventTarget 参数为’TextBox1’,表示是name为’TextBox1’控件触发的事件,而TextBox控件只有一个客户端触发的服务端事件TextChanged,故服务器就会去触发这个TextBox的TextChanged事件->
  
  <input name="TextBox1" type="text" id="TextBox1" onchange="__doPostBack('TextBox1','')" language="javascript" />
  
  4.    客户端触发事件后调用__doPostBack方法,将表示触发的控件源的eventTarget 和事件参数eventArgument分别付给两个隐藏域__EVENTTARGET和__EVENTARGUMENT,然后提交Form,在服务端根据__EVENTTARGET和__EVENTARGUMENT来判断是哪个控件的什么事件触发了。

Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的


  • 上一篇文章:

  • 下一篇文章:
  • 进入论坛讨论

    相关文章
    基于.NET的多线程编程入门
    Microsoft .NET 框架资源基础
    VS2005常用插件搜罗
    .net中用GDI+提高gif图片保存画质
    VS.NET:通过Web服务瞄准电子商务
    对象设计中创建VS使用
    安装/初始化/个性化DotNetNuke
    介绍dotnet原动力(DNN)
    GDI+编程10个基本技巧
    DTE .NET工程的自动化编译
    .Net中如何操作IIS的原理分析
    VS.NETRC5无法创建Add-IN工程
    热门文章最新推荐

    版权与免责声明:
    ① 本网转载其他媒体稿件是为传播更多的信息,此类稿件不代表本网观点,版权归原作者所有,本网不承担此类稿件侵权行为的连带责任。
    ② 在本网BBS上发表言论者,文责自负。
    ③ 如您因版权等问题需要与本网联络,请在30日内联系 。
    Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的
    Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的2006-7-15Asp.net中服务端控件事件是如何触发的

    .net framework专题
    人气排行
  • 此栏目下没有文章
  • 最近更新
    普通文章技术介绍 新数据网格简介
    普通文章.NET 开发人员该下载的十个必备
    普通文章深入剖析Asp.net资源文件
    普通文章通过事例学习.net的WebForms技
    普通文章ASP.NET Tips1---合并多个字段
    普通文章微软明年1月份出台.NET专业开发
    普通文章微软下月底前完成Vista大部分功
    普通文章揭开微软 .NET 认证考试的面纱
    普通文章Visual Studio:Microsoft开发工
    普通文章Visual Studio:Microsoft开发工
    全站热点       
    最新推荐
    关于文谷 | 联系文谷 | 免责声明 | 文谷社区
    Tel: 0577-65690019    E-mail: ichenjian@gmail.com    MSN:ichenjian@hotmail.com    QQ:2911194
    Copyright © 2004-2006 wengu.org 文谷 All Rights Reserved
    浙ICP备05000327号