__doPostBack学习笔记

对于服务器端的控件,一切都是靠submit来实现提交服务器的操作的,
对于无法象button控件那样可以自己产生提交操作的控件,比如LinkButton等,
都是通过_doPostBack(ControlId)来实现提交的。
ASP.NET会自动为页面生成下面的脚本:

__doPostBack学习笔记 代码
   
     
< 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和回送时的参数.

防止ASP.NET页面重复提交的一个方法如下:

Page_Load :Page.GetPostBackClientEvent(serverControl, "");

__doPostBack学习笔记 代码
   
     
< form id ="form1" runat ="server" >
< div >
< asp:Button ID ="btntest" runat ="server" Text ="test" OnClick ="btntest_Click" />
</ div >
</ form >
< script >
function DisableButton(b) {
b.disabled
= true ;
b.value
= ' 正在提交,请稍侯.... ' ;
__doPostBack(b.id,
'' );
}
</ script >

 



你可能感兴趣的:(post)