郁闷,ASP.NET 回车session失效问题

caiqi718 2009-10-17 09:02:05
我写了个基类用于session判断,然后各个页面继承BasePageSessionExpire,现在的问题是我页面有1个搜索框和搜索按钮,问题是我输入条件然后点击搜索按钮,页面正常可得出结果,但我如果输入条件后直接回车,页面就会跳转到session失效的页面,这个是为什么呢?望指教

药品名称:<asp:TextBox ID="txtDrug" CssClass="inputBox" runat="server" onkeypress="return checkType(this);"
AutoPostBack="false" />
<asp:ImageButton ID="Search" runat="server" ImageUrl="~/members/images/search.bmp"
OnClick="Search_Click" Style="height: 20px" ImageAlign="AbsMiddle" />


public class BasePageSessionExpire : System.Web.UI.Page
{


public BasePageSessionExpire()
{
this.Load += new EventHandler(BasePageSessionExpire_Load);
}

void BasePageSessionExpire_Load(object sender, EventArgs e)
{
if (Session["MemberInfo"] == null)
{
string returnUrl = HttpUtility.UrlEncode(HttpContext.Current.Request.Url.PathAndQuery);
Response.Redirect("~/memberLogin.aspx?returnUrl=" + returnUrl);

}
}
}
...全文
124 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuchicuit 2009-10-18
  • 打赏
  • 举报
回复
事实上,最简单方法就是在HTML页而的相应的textBox里加一个onkeydown属性,并定义就行了。比如:
<asp:TextBox ID="textBox2" runat="server" onkeydown="if(event.keyCode==13) {document.getElementById('button2').focus();}"> </asp:TextBox>
xuchicuit 2009-10-18
  • 打赏
  • 举报
回复
给个思路: 你的问题在于输入框输入内容后,回车得到的焦点不是你想要的BOTTON,可以用JS 控制在TEXTBOX得到焦点后的回车键的作用。如:
textbox1.Attributes.add("onkeydown","javascript:if (keycode==13) { document.getElementById('button2').click();}")


可以参考我以前回复过的一个帖子,把这个问题说得很清楚
http://topic.csdn.net/u/20090827/14/f33c93e0-f507-4c98-95fb-717ac79589ac.html
hinroe 2009-10-18
  • 打赏
  • 举报
回复
那就让搜索按钮的回车键好用,退出按钮的回车键不好用,即页面点击回车,只触发搜索按钮事件
document.onkeyPress = function(){
if(event.keyCode == 13)
{
document.getElementById("Search").click();
}
}
camperer 2009-10-18
  • 打赏
  • 举报
回复
把搜索框连同搜索按钮放到一个pannel里,然后设置pannel的defaultbutton为搜索按钮。。。
这样在搜索文本框输入文字后按回车键就会执行搜索click事件,在这个pannel之外的地方按回车键依然会执行第一个按钮(即你的退出按钮)的事件
huangxiaolong22 2009-10-18
  • 打赏
  • 举报
回复
看过了,是不是你的对回车设置其他的键的作用啊??
wuyq11 2009-10-18
  • 打赏
  • 举报
回复
在JS里禁用回车
禁用页面中的回车键
function form_onkeydown(){
if(event.keyCode == 13)
{
event.returnValue=false;
}
}
<body onkeydown="form_onkeydown();" >
或document.getElementById("Button1").click();
return false; 执行其他按钮
caiqi718 2009-10-18
  • 打赏
  • 举报
回复
问题 找到了 是上面顶部有个退出按钮 我测试了下 好像回车以后它会执行第一个按钮的提交事件 这里刚刚好第一个是退出 所以失效了 但问题是 我如果想保留这个退出按钮 我该怎么解决呢
caiqi718 2009-10-18
  • 打赏
  • 举报
回复
试了HttpContext.Current.Session["MemberInfo"],貌似还是不行
happy664618843 2009-10-17
  • 打赏
  • 举报
回复
HttpContext.Current.Session["MemberInfo"]
cnhuangjin 2009-10-17
  • 打赏
  • 举报
回复
你的类是继承System.Web.UI.Page,所以要用System.Web.HttpContext.Current.Session["MemberInfo"]
zbyvsty521 2009-10-17
  • 打赏
  • 举报
回复
1.你的网站可能有其他按钮.并且TABLINDEX比这个搜索低
2.AutoPostBack="false"去掉试试...
3..我想不到了...实在不行用APPLICATION吧
xycit 2009-10-17
  • 打赏
  • 举报
回复
up
successful_cdr 2009-10-17
  • 打赏
  • 举报
回复
HttpContext.Current.Session["MemberInfo"]
landry12345 2009-10-17
  • 打赏
  • 举报
回复
学习了

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧