1

新しい値に応じて、変更時にページをリロードするコンボボックスがあります。

<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)"

ページを更新すると役立つ場合もあれば、そうでない場合もあります。これはよくある問題ですか?

4

0 に答える 0