在 asp .net c# 中更改文本框输入时重置会话
本文关键字:输入 会话 文本 net asp | 更新日期: 2023-09-27 18:20:47
我在页面中有会话,并希望在用户文本输入更改时重置此会话。例如:帐号 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
}
有几种方法可以完成您的要求。
选项一:
您可以使用文本框对文本更改事件
<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
}