我是ASP.NET的初学者,一本教科书说: 如果创建的网页包含一个或多个配置为使用AutoPostBack的Web控件,则ASP.NET会在呈现的HTML页面上添加特殊的JavaScript函数。该函数名为__doPostBack()。调用时,它将触发回发,将数据发送回Web服务器
<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();
}
所以我的问题是:
Q1-如何在服务器端检索__EVENTTARGET.value和__EVENTARGUMENT.value?在页面生命周期的哪个阶段发生
第2季度-假设我没有检查IsPostBack
,因此它仍会在回发中创建一个新的下拉列表,教科书上说“无法在每次回发后重新生成列表。如果这样做,所选项目信息将丢失,并且将发生错误”
但为什么?即使我创建了一个新列表,我仍然拥有__EVENTTARGET.value和__EVENTARGUMENT.value信息,所以我仍然可以知道选择了哪个项目导致回发,不是吗?