我有一个组合框,它应该根据它的新值在更改时重新加载页面。
<asp:dropdownlist id="{ElementId}" Runat="server" AutoPostBack="true" Enabled="True"></asp:dropdownlist>
我的问题:它可以打开和关闭。在使用调试器后,我发现有一些 javascript 行有时会出现,有时不会。他们来了:
<script type="text/javascript">
//<![CDATA[
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>
我假设 .Net 生成器负责这些行,有时它们不存在似乎很有趣。我们正在使用 .Net 4.0。
此外,当它不起作用时,似乎缺少另一个元素,一个名为“aspNetHidden”的div在它起作用时存在:
<div class="aspNetHidden">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="..." />
</div>
当它不起作用时,只会出现:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="..." />
此外,在不同的尝试中,似乎与上一个问题无关(它可以在上一个不存在时出现),onchange
元素的属性来来去去:
onchange="javascript:setTimeout('__doPostBack(\'{ElementId}\',\'\')', 0)"
刷新页面有时会有所帮助,有时不会。这是一个常见问题吗?