自动回发不起作用

时间:2012-09-03 09:30:57

标签: asp.net postback autopostback

我有一个组合框,应该根据它的新值重新加载页面。

<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(&#39;__doPostBack(\&#39;{ElementId}\&#39;,\&#39;\&#39;)&#39;, 0)"

刷新页面有时会有所帮助,有时候不会。这是一个常见的问题吗?

0 个答案:

没有答案