文章 | 入侵攻击 | 安全防御 | 操作系统 | 网站建设 | 网络编程 | 路由交换 | 灾难恢复 | 新闻资讯 | 安全公告
下载 | 漏洞扫描 | 加密破解 | 入侵攻击 | 后门木马 | 溢出程序 | 综合工具 | 安全防护 | 原创发布 | 动画教程
论坛 | 黑客军火 | 配服务器 | 黑客情感 | 免费资源 | 美女贴图 | 灌水无罪 | 在线服务 | 会员照片 | 网站首页
 当前位置:主页 >> 技术文摘 >> 网络编程 >> NET编程 >> 文章内容  
 

 
Asp.net 中在客户端触发服务端事件

www.hx99.org 阅读: 时间:2007-07-12 整理:华西黑盟
------------------------------------------------------------------
 Asp.net中在客户端触发服务端事件分为两种情况:

一.WebControls中的Button和HtmlControls中的Type为submit的HtmlInputButton

这两种按钮最终到客户端的表现形式为:<inputname="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-->

<inputtype="hidden"name="__EVENTTARGET"value=""/>

<!—表示触发事件的参数,一般是当某个控件有两个以上的事件时,用来区别是哪个事件-->

<inputtype="hidden"name="__EVENTARGUMENT"value=""/>

2.服务端会生成一个jscript的方法来处理所有这些事件的发送,这段代码是:

<scriptlanguage="javascript">

<!--

function__doPostBack(eventTarget,eventArgument){

vartheform=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只有一个客户端触发的服务端事件-->

<inputlanguage="javascript"onclick="__doPostBack('Button2','')"name="Button2"id="Button2"type="button"value="Button"/>

又比如,TextBox控件的Change事件

<!—客户端的onchange事件调用__doPostBack,eventTarget参数为'TextBox1',表示是name为'TextBox1'控件触发的事件,而TextBox控件只有一个客户端触发的服务端事件TextChanged,故服务器就会去触发这个TextBox的TextChanged事件->

<inputname="TextBox1"type="text"id="TextBox1"onchange="__doPostBack('TextBox1','')"language="javascript"/>

4.客户端触发事件后调用__doPostBack方法,将表示触发的控件源的eventTarget和事件参数eventArgument分别付给两个隐藏域__EVENTTARGET和__EVENTARGUMENT,然后提交Form,在服务端根据__EVENTTARGET和__EVENTARGUMENT来判断是哪个控件的什么事件触发了。

   -------------------------------------------------------------------------------------------
  上一篇:ASP.NET如何存取SQL Server数据库图片
  下一篇:关于日期的显示与输入
   -------------------------------------------------------------------------------------------
用户名:
Email:
评论内容:
 
  精品推荐
推荐:ASPX一句话木马--终
利用ASP.Net 动态生成HTML
asp.net实现验证码
在asp.net中利用session做
Asp.net 中在客户端触发服
Asp.net 中服务端控件事件
ASP.NET上传图片并生成可
ASP.NET AJAX解决网页打开
实现IE浏览器部分菜单命令
Asp.net一夜速成教程
从sqlserver中读取图片
ASP.NET页面间的传值的几
用动态属性和DataView实现
用PagedDataSource类实现D
关于TreeView控件专题
asp.net上传图片并同时生
ASP.NET中水晶报表的使用
ASP.NET 中 Cookie 的基本
ADO.NET使用经验集
Forms身份验证
ASP.NET四种页面导航方式
ASP.NET中如何防范SQL注入
[分享]ASP.NET学习手记```
ASP.NET编程中的十大技巧
用ASP.NET上传图片并生成
关于我们 | 发展历程 | 在线投稿 | 核心监督 | 友情链接 | 网站地图 | 网站留言 | 联系我们
Copyright © 2004-2007 Www.Hx99.Net
版本:华西黑盟网站系统V5.0 Email:root#hx99.org
中国·西安·宝鸡 请使用IE6.0版本, 分辩率1024×768进行浏览
版权所有 任意抄袭 注意完整
陕ICP备06000444号