検索したところ、いくつかの提案が見つかりましたが、どれも問題を解決していません。
<asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text=""></asp:TextBox>
プロパティ ウィンドウで、TextBox に対して EnableViewState = True を設定します (ここで推奨)。TextBox に新しい値を入力してから、Tab キーを押しています。何も起こらず、if(IsPostBack...) のブレーク ポイントも壊れません。
コードビハインド:
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack && uid.Text != "" && pw.Text == "")
{
Do stuff
}
}
更新:私が試した他の TextBox セットアップ:
<asp:TextBox runat="server" ID="uid" Text="" AutoPostBack="True" OnTextChanged="UidTextChanged"></asp:TextBox>
protected void UidTextChanged(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(GetType(), "alert", "alert('it works');", true);
}
と
<asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text="" onblur="__doPostBack('','');" OnTextChanged="UidTextChanged"></asp:TextBox>
と
<asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text="" onblur="__doPostBack('','');"></asp:TextBox>
AutoPostBack を true に設定すると、ブラウザ コンソールに次のエラーが表示されます。
"Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function
__doPostBack
(anonymous function)"
onblur プロパティを設定すると、匿名関数の代わりに onblur と表示されることを除いて、まったく同じエラーが表示されます。