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

http://tech.ddvip.com   2007年11月24日    社区交流

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

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

以下是引用片段:
<inputtype="hidden"name="__EVENTTARGET"id="__EVENTTARGET"value=""/> 
<inputtype="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和回送时的参数:

以下是引用片段:
  protectedvoidPage_Load(objectsender,EventArgse)
  {
  stringtarget=Request.Params["__EVENTTARGET"];
  stringargs=Request.Params["__EVENTARGUMENT"];
  }

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

  使用HTML控件回送页面:

以下是引用片段:
<formid="form1"runat="server"> 
<asp:LinkButtonID="LinkButton1"runat="server"></asp:LinkButton> 
<inputtype="button"value="ClientControl"onclick="javascript:__doPostBack(’Button1’,’ButtonClick’);"/> 
</form> 
protectedvoidPage_Load(objectsender,EventArgse) 
{ 
  if(this.IsPostBack) 
  { 
    stringtarget=Request.Params["__EVENTTARGET"]; 
    stringargs=Request.Params["__EVENTARGUMENT"]; 
    Response.Write("ButtonID:"+target+"<br/>"); 
    Response.Write("Arguments:"+args+"<br/>"); 
  } 
}

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

  阻止asp:Button提交页面:

以下是引用片段:
   <formid="form1"runat="server">
  
<asp:ButtonID="Button1"runat="server"Text="Button"/> 
</form> 
protectedvoidPage_Load(objectsender,EventArgse) 
{ 
  stringscr="returnconfirm(’Areyousureyouwanttosubmitthisform?’);"; 
  this.Button1.Attributes.Add("onclick",scr); 
}

责编:豆豆技术应用

正在加载评论...