`
pcajax
  • 浏览: 2118317 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

asp.net页面回传与js调用服务端事件,Postback的原理

阅读更多

Asp.net 中在客户端触发服务器端事件分为两种情况:
一.   WebControls中的Button 和HtmlControls中的Type为submit的HtmlInputButton
这两种按钮最终到客户端的表现形式为:<input 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" value="" />
<!—表示触发事件的参数,一般是当某个控件有两个以上的事件时,用来区别是哪个事件 -->
<input type="hidden" value="" />
2.服务端会生成一个jscript的方法来处理所有这些事件的发送,这段代码是:
<script language="javascript" type="text/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" Button2','')" type="button" value="Button" />
又比如,TextB ......

<script type="text/javascript"><!-- google_ad_client = "pub-6770445892601887"; /* 468x60, 创建于 09-11-19 */ google_ad_slot = "4437639877"; google_ad_width = 468; google_ad_height = 60; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
分享到:
评论

相关推荐

    asp.net页面提交

    c#语音编写的表单提交,及页面的postback文题!

    asp.net知识库

    在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...

    ASP.NET webforms数据库操作基础例程(POSTBACK)

    例程基于ASP.NET webforms框架,采用POSTBACK技术,展现了对数据库相关的各项操作与内容展示,并实现了分页显示。相关数据库请下载本人资源《中国省级区域概况-ASP.NET例程数据库(SQL2008R2)》...

    ASP.NET的网页代码模型及生命周期

    但是与.cs页面编译过程不同的是,当浏览者第一次浏览到.aspx页面时,ASP.NET自动生成该页的.NET类文件,并将其编译成另一个.DLL文件。 当浏览者再一次浏览该页面的时候,生成的.DLL就会在服务器上运行,并响应用户在...

    asp.net(c#)网页跳转七种方法小结

    ①response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护。但速度慢是其最大缺陷!...

    asp.net技术内幕(1)

    第一部分 使用ASP.NET Web表单 &lt;br&gt;第1章 建立ASP.NET页面 &lt;br&gt;1.1 ASP.NET和.NET框架 1.1.1 .NET框架类库 1.1.2 理解名称空间 1.1.3 标准的ASP.NET名称空间 1.1.4 与.NET框架兼容的语言 ...

    ASP.Net皮肤换肤控件

    分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等,...

    微軟MVP的ASP.NET 4.5專題實務I

     一個範例學通 PostBack觀念,瞬間領悟ASP.NET精髓!  深入剖析GridView範例,寫程式徹底控制GridView、ListView。 。  七個範例學會 RowDataBound事件,打造您專屬的GridView畫面與功能。  最精華的ADO.NET理論...

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    3.4 ASP.NET页面的事件 57 3.5 处理回送 59 3.6 跨页面的传送 59 3.7 ASP.NET应用程序文件夹 66 3.7.1 \App_Code文件夹 66 3.7.2 \App_Data文件夹 70 3.7.3 \App_Themes文件夹 70 3.7.4 \App_GlobalResources...

    浅谈ASP.NET的Postback 实例代码第1/2页

    我们现在来看看ASP.NET整个Postback程序处理的过程。 首先我们通过一个Sample来看ASP.NET如何处理一个通过Click一个Button引起的Postback。下面是Web Page的HTML: 代码如下: &lt;&#37;@ Page Language=”C#” ...

    页面回传后滚动条保持原位

    搜到这个资源这能说是您的福音了,文档里面的代码非常的简单易用,文档主要解决的问题是 页面回传刷新后滚动条保持原位 用UpdatePanel的情况下滚动条保持原位 解决用UpdatePanel的一些不兼容问题

    ASP.net技术内幕

    1.1.1 .NET框架类库 1.1.2 理解名称空间 1.1.3 标准的ASP.NET名称空间 1.1.4 与.NET框架兼容的语言 1.2 ASP.NET控件简介 1.2.1 简单的ASP.NET页面 1.2.2 ASP.NET控件的优点 ...

    ASP.NET2.0高级编程(第4版)1/6

    3.4 ASP.NET页面的事件57 3.5 处理回送59 3.6 跨页面的传送59 3.7 ASP.NET应用程序文件夹66 3.7.1 \\App_Code文件夹66 3.7.2 \\App_Data文件夹70 3.7.3 \\App_Themes文件夹70 3.7.4 \\App_GlobalResources  文件夹...

    asp.net动态创建控件实现多文件上传

    asp.net中的FileUpload控件一次只能实现上传一个文件,若要上传多个文件的话必须使用多个FileUpload控件,但一次上传多少个文件有时不确定,所以就想到了动态创建控件。此处是用下拉列表控件的postback控制的,要想...

    asp.net一夜速成18

    Invalid postback or callback argument. Event validation is enabled using &lt;pages enableEventValidation="true"/&gt; in configuration or &lt;%@ Page EnableEventValidation="true" %&gt; in a page. For security ...

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    尽管这样的default.aspx页面实际上永远不会被真正执行,但是有他们的帮助,就能让IIS顺利地将页面请求转发至ASP.NET解析器,从而,使得基于HTTPModule的URL重写规则,被执行。 好了,创建这两个目录及default.aspx...

    asp.net 禁止F5和后退

    执行过postback操作的web页面在刷新的时候,浏览器会有“不重新发送信息,则无法刷新网页”的提示,若刚刚执行的恰好是往数据库插入一条新记录的操作,点[重试]的结果是插入了两条重复的记录,以前一直是用保存数据...

    GridView(For Asp.net C# vs2005)控件

    最近在使用ASP.net 2.0的GridView 控件时,发现排序与分页功能Microsoft实现的都很简单,比如排序,在点击列名的时候来触发整页的PostBack,然后排序,但是在列头上没有一个显示升序降序的图标,这会让最终用户使用...

    asp.net技术内幕(5)

    第一部分 使用ASP.NET Web表单 &lt;br&gt;第1章 建立ASP.NET页面 &lt;br&gt;1.1 ASP.NET和.NET框架 1.1.1 .NET框架类库 1.1.2 理解名称空间 1.1.3 标准的ASP.NET名称空间 1.1.4 与.NET框架兼容的语言 ...

    asp.net技术内幕(4)

    第一部分 使用ASP.NET Web表单 &lt;br&gt;第1章 建立ASP.NET页面 &lt;br&gt;1.1 ASP.NET和.NET框架 1.1.1 .NET框架类库 1.1.2 理解名称空间 1.1.3 标准的ASP.NET名称空间 1.1.4 与.NET框架兼容的语言 ...

Global site tag (gtag.js) - Google Analytics