ページにセッションがあり、ユーザーのテキスト入力が変更されたときにこのセッションをリセットしたいと考えています。例: 口座番号 xxx にはセッションがあり、口座番号が yyy に変わったら、セッションをリセットしたいと思います。このページにログインしていないため、ログアウト時にセッションをダンプできません。助けていただければ幸いです。前もって感謝します。
6 に答える
これを試して:
aspx:
<asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
コードビハインド:
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
Session.Clear();
}
テキストボックスの「onkeyup」イベントでajax呼び出しを行い、そのセッションで新しい値を設定すると、テキストボックスの新しい値が取得され、セッションで設定できます。
あなたが求めていることを行うには、いくつかの方法があります。
オプション 1:
テキストボックスontextchangedイベントを使用できます
<asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged" AutoPostBack="true"></asp:TextBox>
コードビハインド:
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
Session.Clear();
}
ここでの落とし穴は、テキスト ボックスがフォーカスを失った場合にのみ OnTextChanged イベントが発生することです。
オプション 2: JavaScript を使用して onkeyup イベントをキャプチャし、サーバーに ajax コールバックを行ってセッション情報を更新します。
ここでの落とし穴は、ユーザーがテキスト ボックスに文字を入力するたびに ajax 呼び出しを行うことです。アカウント番号が特定の長さの場合にのみ呼び出しが行われるようにチェックを追加できますが。
オプション 3: フォームにボタンを追加して、ユーザーがアカウント番号を入力した後にクリックできるようにすることができます。これにより、オプション 2 のように、キーを押すたびにサーバーを不必要に呼び出すことが回避されます。次に、ボタンをクリックするイベント内で、セッションで作業を行うことができます。
<asp:TextBox ID="TextBox1" runat="server" />
<asp:Button ID="btnSubmit" runat="server" onclick="btnSubmit_Click" Text="Submit" />
コードビハインド
protected void btnSubmit_Click(object sender, EventArgs e)
{
// do session work
}