__doPostBack function
__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的更多相关文章
- 如何解决ASP.NET网站'__doPostBack' is undefined的脚本错误
最近碰到一个很奇怪的问题! 新发布一个ASP.NET的网站,基于.net 4.0 framework,基本没有用到什么特别新的技术,但是由于给客户预览用的服务器比较老,操作系统用的是Windows 2 ...
- (转)深入理解 __doPostBack
在我的随笔<Page,你是怎样处理回发事件的?>中曾提出一个疑问,如何得到引起页面PostBack的控件?通过阅读Page类的源码,误打误撞,无意中看到了__EVENTTARGET和__E ...
- __doPostBack初识
周五在公司看到有看到Request.Params["__EVENTARGUMENT"]的代码不解,不解遂上网查找,发现一篇文章<Understanding the JavaS ...
- 深入理解asp.net中的 __doPostBack函数
前段时间做一个.net网站的时候,用到了模拟前端按钮刷新updatePanel进行局部刷新的时候,遇见了这个问题,当时没顾上记下来,查看网上资料,记下来留着以后查看. 很早以前,当我刚接触asp.NE ...
- [转]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 ...
- response 后刷新页面,点击按钮后,禁用该按钮
一,正常的点击按钮后,将其灰显,全部执行完毕再正常显示. this.btnSave.Attributes.Add("onclick", "if (typeof(Page_ ...
- Asp.net中Postback及Callback
我们知道,在默认的情况下,当我们点击Asp.net Page中的一个服务器Button时(默认其实是Submit Form),会导致Page被Recreated,这个过程我们称之为Postback,它 ...
- 浅谈ASP.NET的Postback
说道ASP.NET的Postback,就得说Web Page的生命周期,但是Web Page的生命周期却不是三言两语就能够说得清楚的,所以在这里单纯站的编程的角度,撇开Web Page 的生命周期浅谈 ...
- easyui combogrid 多选加载,保存,显示代码
1.调用代码 UTIL.SetDict($("#txt_ExcludeIndustry_"), "SECTOR_TYPE", true, true, funct ...
随机推荐
- PHP进阶书籍
[初阶](基础知识及入门) 01. <PHP与MySQL程序设计(第4版)> http://item.jd.com/10701892.html 02. <深入浅出MySQL 数据库 ...
- k-means 非监督学习聚类算法
非监督学习 非监督学习没有历史样本数据和标签,直接对数据分析或得结果. k-means 使用 >>> from sklearn.cluster import KMeans >& ...
- Go语言的基本语法(二)
一·if -else (1) package main import "fmt" // if - else //func main(){ // // 先定义 一个变量 // v ...
- Spingboot项目的创建与启动(基于IDEA)
一.Springboot的创建 1.Springboot的优点: Springboot是来简化Spring框架,从而能够更加简单快捷的构建Spring应用的框架,其具有如下优点: ①为所有Spring ...
- 关于Java中线程取值并返回的方法
如何让一个线程不断跑起来,并且在取到值的时候能返回值而线程能继续跑呢? 我们都知道可以用Callable接口获得线程的返回值,或者触发事件监听来操作返回值,下面我将介绍另一种方法. public ab ...
- 微信小程序 canIUse
wx.canIUse(); 微信文档中定义在API中,可以理解为一个函数. 返回值: true 或者 false 示例: // 在JS文件的函数中进行使用 console.log(wx.canIUse ...
- springboot+elasticsearch 报错
错误1: .d.e.r.s.AbstractElasticsearchRepository : failed to load elasticsearch nodes : org.elasticsear ...
- C++最快获取像素值
HDC hdc, hdcTemp; RECT rect; BYTE* bitPointer; int x, y; int red, green, blue, alpha; while(true) { ...
- ie浏览器css兼容样式实例
background-color:#f00;/*all*/background-color:#0ff\0;/* ie 8/9 */background-color:#0f0\9\0;/* ie9 */ ...
- VCL界面控件DevExpress VCL Controls v19.1.3全新来袭
DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包.所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速 ...