|
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>

<div>
<span id=LabelMessage style=color:Red;></span>
</div>
<div>
<input type=submit name=Button1 value=Button1 id=Button1 />
<input type=button name=Button2 value=Button2 onclick=javascript:__doPostBack(Button2,) id=Button2 />
<input type=button name=Button3 value=Button3 onclick=javascript:__doPostBack(Button3,) id=Button3 />
</div>
</form>
</body>
</html>
上面的HTMLBody部分大体包括3个部分:
1. 定义了3个hidden field:
<input type=hidden name=__EVENTTARGET id=__EVENTTARGET value= />
<input type=hidden name=__EVENTARGUMENT id=__EVENTARGUMENT value= />
<input type=hidden name=__VIEWSTATE id=__VIEWSTATE value=/wEPDwUKMTA0NDQ2OTE5OWRk281L4eAk7iZT10hzg+BeOyoUWBQ= />
从他们的命名可以看出他们分别代表的意思:__EVENTTARGET代表触发Event的Control的Unique name;__EVENTARGUMENT代表为Event Handler定义的额外的参数;__VIEWSTATE:代表的是Viewstate。
2. 一段script:
 <script type=text/javascript>
<!--
var theForm = document.forms[form1];
 if (!theForm) {
theForm = document.form1;
}
 function __doPostBack(eventTarget, eventArgument) {
 if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>
定义了一个__doPostBack function完成Postback的操作,该function只有区区3行代码,前两行通过参数对上面定义的两个hidden field赋值,然后向Server端提交表单。
3. 一段HTML对应通过ASP.NET定义的Web Control。
<div>
<span id=LabelMessage style=color:Red;></span>
</div>
<div>
<input type=submit name=Button1 value=Button1 id=Button1 />
<input type=button name=Button2 value=Button2 onclick=javascript:__doPostBack(Button2,) id=Button2 />
<input type=button name=Button3 value=Button3 onclick=javascript:__doPostBack(Button3,) id=Button3 />
div>
 我们定义的3个Button被转化成3个能向Server端提交表单的<input > Tag, 但是他们提交表的方式却不一样,第一个以<i
上一页 [1] [2] [3] [4] [5] 下一页
浅谈ASP.NET的Postback |