2

検索したところ、いくつかの提案が見つかりましたが、どれも問題を解決していません。

<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 と表示されることを除いて、まったく同じエラーが表示されます。

4

2 に答える 2

3

そのための onblur に JavaScript イベントを追加できます。 onblur='__doPostBack('','');'

これにより、テキストボックスがタブアウトされるとポストバックが発生します。

編集:それは「ではない」はず<asp:TextBox ID="TextBox1" runat="server" onblur="__doPostBack('','');" /> ですAutoPostBack="True"

編集2:ペーストビンに基づいて.... <asp:Button runat="server" UseSubmitBehavior="True" ID="submit" Text="Save" onclick="SubmitClick"/> 「送信」のIDを持つことはできません。それを「btnSubmit」に変更すると、Javascript ソリューションが機能し、Auopostback ソリューションも機能するはずです。 http://www.xpertdeveloper.com/2012/05/property-submit-of-object-is-not-a-function/で問題が説明されます。

于 2012-09-25T18:20:54.073 に答える
1

テキストボックスに追加でき OnTextChanged="TextBox1_TextChanged"ます

注 : AutoPostBack="true" だけでなく、イベントを発生させることが重要です。

<asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text="" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>

コードビハインド:

protected void TextBox1_TextChanged(object sender, System.EventArgs e) {  
    .....
} 
于 2012-09-25T17:56:57.230 に答える