[英]Reset session upon textbox input change in asp .net c#
我在頁面中有會話,並且想在用戶文本輸入更改時重置此會話。 例如:帳號xxx將有一個會話,一旦帳號更改為yyy,我想重置會話。 我沒有登錄到此頁面,因此無法在注銷后轉儲會話。 幫助表示贊賞。 先感謝您。
嘗試這個:
在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();
}
因此,您將需要一個事件處理程序,該事件處理程序在帳戶號更改時(或在用戶文本輸入更改時)觸發,然后根據此帖子,您將需要使用Session.Clear()
,該操作會從中刪除所有值對象或Session.Abondon()
,它將破壞會話並觸發Session_OnEnd事件 。 無論使用哪種方式,都取決於您要完成什么。
在文本框的“ onkeyup”事件上進行ajax調用並在該會話中設置新值,您將獲得文本框的新值並可以在會話中進行設置。
使用TextBox
TextChanged
事件並使用Session.Abandon()
或Session.Clear()
方法銷毀會話。
如果您在此處寫下代碼,那么我們可以為您提供准確的答案
嘗試這個
<asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged"></asp:TextBox>
背后的代碼
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
Session["your_sesion_name"]=TextBox1.Text;//or what ever you want to update value
}
有兩種方法可以完成您要問的事情。
選項一:
您可以在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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.