AutoPostBack
フォームのテキスト ボックスの 1 つのプロパティを有効にしました。これは、 w3 学校によれば、Enter キーまたは Tab キーを押したときにのみポストバックをトリガーする必要があります。
__doPostBack()
また、javascript プロンプトに対するユーザーの回答を考慮して、on pageLoadを呼び出しています。私がそれを行うと、Request.Form['__EventTarget']
は への呼び出しで設定したものではありません__doPostBack
。
私にとっての本当の問題は、TextBox の AutoPostBack 属性を false に設定すると、pageload __doPostBack 呼び出しの問題がなくなることです。これは私が期待した動作ではありません。問題の原因についてのアイデアはありますか? AutoPostBack を有効にすると影響があるのはなぜですか?
コードの一部を次に示します。
asp:TextBox runat="server" ID="userName" OnTextChanged="UpdateTable" AutoPostBack="true"
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
input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value=""
input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value=""
input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value=""
function jsPrompt(name) {
var ans = confirm('really follow ' + name + '?');
if (ans) {
__doPostBack('follow', name);
}
}
次に、コードビハインド ページで:
if (Request.Form["__EventTarget"] == "follow")
followPerson(Request.Form["__EventArgument"]);
しかし、私はそれを取得し続けRequest.Form["__EventTarget"]
、","
デバッガーで JavaScript をステップ実行しました。の直前にform.submit()
、引数はありません","