菜鸟,今天弱弱第二问,关于page_load执行顺序的问题,谢谢

zhangsong1238 2008-12-25 11:27:58
'登录按钮引发的事件
Protected Sub imgbtnlogin_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles

imgbtnlogin.Click
If Not Me.IsPostBack Then
If Session("username") = "" Then
Else
Me.Response.Write("<script>alert('登录成功')</script>")
End If
End If
'省掉了一部分,其中就是读取数据库中的信息与输入信息的比较,然后写到seesion("username")中去的过程
End Sub



'这是page_load引发的事件
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


If Session("username") = "" Then
pnl1.Visible = True
pnl2.Visible = False
Else
pnl1.Visible = False
pnl2.Visible = True
If Session("level") = 4 Then
Me.magmentLnk.Visible = False
Else
Me.magmentLnk.Visible = True
End If
lblUserName.Text = Session("UserName").ToString()
End If
End Sub

问题,现在我点了登录按钮后,根据跟踪发现,首先执行的是page_load事件,然后执行imgbtlogin_click事件,这样的执行过程的话,page_load事件发生时,session("username")肯定为空的,那些要显示用户的信息就显不出来了,不知道谁有好的一点方法,让我实现登录这一过程,然后在一些控件上显示用户的信息,谢谢
...全文
322 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangsong1238 2008-12-25
  • 打赏
  • 举报
回复
我的想法是,如果点了按imgbtnlogin按钮后,首先是要执行的是imgbtnlogin_click里面的代码,然后在page_load中session("username")就是一个非空的值,这样就能在页面上显示用户的信息

这一段代码就是指的显示用户信息的,但如果是一个非空值的话,就显示不了用户的信息
zxheng87 2008-12-25
  • 打赏
  • 举报
回复
page_load事件是在页面加载或者回传的的时候触发的。你点服务器端控件肯定要触发postback pageload肯定要加载一遍 。
ILoveRMB 2008-12-25
  • 打赏
  • 举报
回复

Protected Sub imgbtnlogin_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles

imgbtnlogin.Click
If Session("username") = "" Then
pnl1.Visible = True
pnl2.Visible = False
Else
Me.Response.Write(" <script>alert('登录成功') </script>")
pnl1.Visible = False
pnl2.Visible = True
If Session("level") = 4 Then
Me.magmentLnk.Visible = False
Else
Me.magmentLnk.Visible = True
End If
lblUserName.Text = Session("UserName").ToString()
End If
'省掉了一部分,其中就是读取数据库中的信息与输入信息的比较,然后写到seesion("username")中去的过程
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
If Session("username") = "" Then
pnl1.Visible = True
pnl2.Visible = False
Else
pnl1.Visible = False
pnl2.Visible = True
If Session("level") = 4 Then
Me.magmentLnk.Visible = False
Else
Me.magmentLnk.Visible = True
End If
lblUserName.Text = Session("UserName").ToString()
End If
End If
End Sub

zhouwh1 2008-12-25
  • 打赏
  • 举报
回复
用SESSION你登陆完自然出来了 ,,不登陆 自然出不来
zhuanshen712 2008-12-25
  • 打赏
  • 举报
回复
应该在PageLoad事件中加ispostback吧?你的??
imgbtnlogin.Click
If Not Me.IsPostBack
zhouwh1 2008-12-25
  • 打赏
  • 举报
回复
你想记住用户名?用COOKIE吧 ~
zhuanshen712 2008-12-25
  • 打赏
  • 举报
回复
不好意思,没看清题目,2楼作废!
zhuanshen712 2008-12-25
  • 打赏
  • 举报
回复
根据跟踪发现,首先执行的是page_load事件,然后执行imgbtlogin_click事件...
====
是这样执行的,你可以将有关session的代码放到if(!IsPostBack)(C#代码)中去,因为这段代码只在第一次加载次页面时执行。
tommy9802 2008-12-25
  • 打赏
  • 举报
回复
page_load是页面加载时就会执行的。

如果你不想让这里面的一些代码执行,你可以把这些代码重新写一个方法,在你要他执行的地方加载这个方法就好了。

62,269

社区成员

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

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

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

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