当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET中的doPostBack脚本函数实例

ASP.NET
.Net业务平台的数值精度陷阱与解决方法
投票结果的图片进度条显示
七招制胜ASP.NET应用程序开发
ASP.NET 2.0的导航控件treeview和menu的实例
ASP.NET实现页面间值传递的几种方法
项目调试时出现用到的一个组件“访问被拒绝”的解决方法
ASP.NET中“找不到指定模块”的解决办法
C#中的委托和事件
在指定应用程序域中执行代码
Ajax简单客户登陆验证
AJAX将成为移动Web2.0时代首选开发平台
关闭按钮点击事件的捕捉
远程抓取GOOGLE的自动翻译结果
保护你的DLL和Code不被别人使用
ASP.NET的底层的工作机制介绍
ASP.NET2.0服务器控件之捕获回传事件
使用Data Access Application Block 得到存储过程的返回值
面向服务及其在互联系统策略中的角
ASP.NET2.0服务器控件之创建复杂属性
ASP.NET:设置页面buffer引出来的问题

ASP.NET中的doPostBack脚本函数实例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 58 ::
收藏到网摘: n/a

今天来说说当ASP.NET中的doPostBack脚本函数的应用,ASPX页面有包含asp:LinkButton或者带有AutoPostBack属性且其值为true的服务器控件时,ASP.NET会自动为页面生成下面的脚本:

以下为引用的内容:
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> 
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> 
function __doPostBack(eventTarget, eventArgument) { 
    if(!theForm.onsubmit || (theForm.onsubmit() != false)) { 
        theForm.__EVENTTARGET.value = eventTarget; 
        theForm.__EVENTARGUMENT.value = eventArgument; 
        theForm.submit(); 
       } 
}

__doPostBack带有两个参数:eventTarget和eventArgument。

eventTarget是引起回送的控件的ID,eventArgument是回调参数(与控件相关的附加数据)。这两个参数分别由隐藏的两个表单域__ EVENTTARGET和__ EVENTARGUMENT保存。

使用这两个隐藏的表单可以查找引起页面回送的控件ID和回送时的参数:

以下为引用的内容:
  protected void Page_Load(object sender, EventArgs e)
  {
  string target = Request.Params["__EVENTTARGET"];
  string args = Request.Params["__EVENTARGUMENT"];
  }

因为asp:Button和asp:ImageButton不是使用__doPostBack回送页面,所以使用这两个控件回送页面时,上面的代码是无效的。

使用HTML控件回送页面:

以下为引用的内容:
<form id="form1" runat="server"> 
<asp:LinkButton ID="LinkButton1" runat="server"></asp:LinkButton> 
<input type="button" value="Client Control" onclick="javascript:__doPostBack(’Button1’, ’Button Click’);" /> 
</form> 
protected void Page_Load(object sender, EventArgs e) 

    if(this.IsPostBack) 
    { 
        string target = Request.Params["__EVENTTARGET"]; 
        string args = Request.Params["__EVENTARGUMENT"]; 
        Response.Write("Button ID: " + target + "<br />"); 
        Response.Write("Arguments: " + args + "<br />"); 
    } 
}

加入的目的是为了让ASPX自动生成__doPostBack脚本。

阻止asp:Button提交页面:

以下为引用的内容:

<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button" /> 
</form> 
protected void Page_Load(object sender, EventArgs e) 

    string scr = "return confirm(’Are you sure you want to submit this form?’);"; 
    this.Button1.Attributes.Add("onclick", scr); 
}