__doPostBack function

Hi everyone.

Today I am going to talk about the __doPostBack function, because there is some confusion with using this function.
You can see this __doPostBack function in your ASP.NET generated HTML code.

The function takes the following two arguments:

eventTarget  - This contains the ID of the control that caused the post back.
eventArgument
- This contains any additional data associated with the control.

In any ASP.NET page the two hidden fields: __EVENTTARGET and __EVENTARGUMENT are automatically declared. When a page is posted back to the server ASP.NET inspects __EVENTTARGET and __EVENTARGUMENT
values and this way it can decide which of the controls caused the page
to be posted back and what is the event that has to be handled.

The value of the parameters eventTarget and eventArgument
are stored in the hidden fields. The two hidden variables can be
accessed from the code behind using the forms or params collection.

If we inspect the code of the <span class="Apple-style-span">__doPostBack</span>
function, we can see that it first sets the values of two hidden fields
with the two parameters passed to the function. After this, the page is
submitted back to the server. The ID of the control which causes the
postback is stored in the __EVENTTARGET hidden field, so you can find
the control which caused the postback.

<a id="LinkButton1" href="javascript:__doPostBack( 'LButton3','' )">LinkButton</a>

You can see the function call __doPostBack('LButton3','') in the href and the argument passed for eventTarget is "LButton3" which is the id of the link button control (EventSource)

Example

1.Add two hidden fields inside the form.

<input type =hidden name ="__EVENTTARGET" value ="">
<input type =hidden name ="__EVENTARGUMENT" value ="">

2.Add javascript under the Head tag.

直接点击button的话,不会触发__doPostBack方法。会自动触发button后台绑定的click事件

<script>
function __doPostBack( eventTarget, eventArgument )
{
document.Form1.__EVENTTARGET.value = eventTarget;
document.Form1.__EVENTARGUMENT.value = eventArgument;
document.Form1.submit();
}
</script>

3.Add two controls.

<a id="LButton3" href="javascript:__doPostBack('Button2','')">LinkButton</a>
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" />

4.Add function in your cs page.

protected void Button2_Click(object sender, EventArgs e)
{
Response.Write("Welcome to Student Academic Blog");
}

5.You also need some code in the code behind to capture the postback and fire the event.

In the PageLoad method add.

if (Request.Form["__EVENTTARGET"] == "Button2")
{
// Fire event
Button2_Click( this, new EventArgs( ) );
}

This will capture the posted variable __EVENTTARGET and cause it to fire the event "Button2_Click".

You can also pass an event argument along with the target in case you need to pass something to your code behind:

__doPostBack( "Button2', '<event argument here>' ) 

This would be captured in the code behind as Request.Form["__EVENTARGUEMENT"]

So this is how you can use __doPostBack

__doPostBack function的更多相关文章

  1. 如何解决ASP.NET网站'__doPostBack' is undefined的脚本错误

    最近碰到一个很奇怪的问题! 新发布一个ASP.NET的网站,基于.net 4.0 framework,基本没有用到什么特别新的技术,但是由于给客户预览用的服务器比较老,操作系统用的是Windows 2 ...

  2. (转)深入理解 __doPostBack

    在我的随笔<Page,你是怎样处理回发事件的?>中曾提出一个疑问,如何得到引起页面PostBack的控件?通过阅读Page类的源码,误打误撞,无意中看到了__EVENTTARGET和__E ...

  3. __doPostBack初识

    周五在公司看到有看到Request.Params["__EVENTARGUMENT"]的代码不解,不解遂上网查找,发现一篇文章<Understanding the JavaS ...

  4. 深入理解asp.net中的 __doPostBack函数

    前段时间做一个.net网站的时候,用到了模拟前端按钮刷新updatePanel进行局部刷新的时候,遇见了这个问题,当时没顾上记下来,查看网上资料,记下来留着以后查看. 很早以前,当我刚接触asp.NE ...

  5. [转]jQuery UI Dialog Modal Popup Yes No Confirm example in ASP.Net

    本文转自:http://www.aspsnippets.com/Articles/jQuery-UI-Dialog-Modal-Popup-Yes-No-Confirm-example-in-ASPN ...

  6. response 后刷新页面,点击按钮后,禁用该按钮

    一,正常的点击按钮后,将其灰显,全部执行完毕再正常显示. this.btnSave.Attributes.Add("onclick", "if (typeof(Page_ ...

  7. Asp.net中Postback及Callback

    我们知道,在默认的情况下,当我们点击Asp.net Page中的一个服务器Button时(默认其实是Submit Form),会导致Page被Recreated,这个过程我们称之为Postback,它 ...

  8. 浅谈ASP.NET的Postback

    说道ASP.NET的Postback,就得说Web Page的生命周期,但是Web Page的生命周期却不是三言两语就能够说得清楚的,所以在这里单纯站的编程的角度,撇开Web Page 的生命周期浅谈 ...

  9. easyui combogrid 多选加载,保存,显示代码

    1.调用代码 UTIL.SetDict($("#txt_ExcludeIndustry_"), "SECTOR_TYPE", true, true, funct ...

随机推荐

  1. bzoj 3837 pa2013 Filary

    bzoj 先搞第一问.考虑简单情况,如果\(m=2\),那么一定有个剩余类大小\(\ge \lceil\frac{n}{2}\rceil\),同时这也是答案下界 然后我们每次随机选出一个数\(a_i\ ...

  2. Java---- 静态内部类与非静态内部类的区别

    静态类(只有内部类才能被声明为静态类,即静态内部类)1.只能在内部类中定义静态类 2.静态内部类与外层类绑定,即使没有创建外层类的对象,它一样存在. 3.静态类的方法可以是静态的方法也可以是非静态的方 ...

  3. SuperMap-WMTS服务修改切片集顺序

    1.访问iserver的服务接口,找到WMTS服务接口 2.选择切片集的默认顺序

  4. 使用CXF开发WebService程序的总结(七):Spring+CXF+Mybatis+Mysql共同打造的服务端示例

    通过该demo,可以 熟悉下 spring+cxf+maven+mybatis+mysql等常见后端技术整合 1. 在前面的 父工程 ws_parent 中 添加依赖 由于原来的项目是使用的cxf依赖 ...

  5. ios 动画:底部标签栏的概念设计

    本文汇集了大量优秀的ios底部标签栏动效设计,并附上技术实现的指南,对于设计师和开发者都提供了很好的灵感来源和学习资源. 我们每天都见到tab bars,它们指引用户,使得他们能够快速在不同的tab中 ...

  6. Delphi 有类型文件

  7. 13、yum

    1.yum yum是管理rpm包的工具 2.yum源(yum仓库) 要使用yum前,需要准备一个yum源(我们也称为yum仓库), 这个可以是一个互联网上的仓库,也可以是本地自己搭建的仓库. 仓库里面 ...

  8. deep_learning_Function_matpotlib_scatter()函数

    plt.scatter()函数用于生成一个scatter散点图. matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, ...

  9. 升级python导致yum报错的解决方法

    把python从2.7升级到3.6后 , 使用yum报错 File ‘’/usr/bin/yum'', line 30 except KeyboardInterrupt, e: ^ 故障原因:yum采 ...

  10. linux内核配置与编译

    配置内核:配置硬件和软件需的部分. make config:基于文本模式的交互式配置.(一问一答) make menuconfig:基于文本模式菜单性配置.(直观简单高效) <*>会产生b ...