一个初级问题,,在线等

zdm1999 2006-10-17 12:35:43
Option Strict On
Imports System.Data.OracleClient
Public Class WebForm1
Inherits System.Web.UI.Page
public m_strId as string
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码

If Not Page.IsPostBack Then m_strId = "123"
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click

End Sub
End Class

问题:
当我按了按钮btnAdd后,,又执行了PAGE_LOAD事件,并且这时m_strId变量
值没有了,变成NOTHING了?

问题1:为什么我按了按钮后,又执行PAGE_LAOD事件呢?
问题2:为什么PAGE_LOAD事件又执行后,m_strId值没有了呢?
...全文
158 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingyaohua 2006-10-17
  • 打赏
  • 举报
回复
up
fdlm_dark 2006-10-17
  • 打赏
  • 举报
回复
问题1:为什么我按了按钮后,又执行PAGE_LAOD事件呢?
因为发生了PostBack
问题2:为什么PAGE_LOAD事件又执行后,m_strId值没有了呢?
你在写.net如果需要保存某个值可以放到ViewState里而不是全局变量。
由于IsPostBack = ture所以没有执行m_strId = "123"
所以当然是Nothing
aafshzj 2006-10-17
  • 打赏
  • 举报
回复
1)page load事件会被多次调用的,只要你打开该页面或者进行了服务器端事件处理等都会导致该页面被加载。之所以如此,请你牢记:服务器并不持久保存每个页面对象的,而只在有访问发生时创建该对象的实例,根据viewstate等信息初始化并加载该页面,随后进行回调事件或其它事件处理。

2)你现在的代码逻辑是说在page load时,如果不是IsPostBack(事件回调时IsPostBack==true)则把m_strId 设置成 "123"。因为按了btnAdd之后IsPostBack==true,该设置代码根本不会调用,所以m_strId 保持本次访问创建的page对象的默认状态(如果你没设置,就是null)。

看起来,你是希望在回调过程中保持m_strId状态的,那你应该使用viewstate.
viena 2006-10-17
  • 打赏
  • 举报
回复
PAGE_LAOD事件是先执行的
点按钮提交,页面回送,先PAGE_LAOD,然后才是btnAdd
zdm1999 2006-10-17
  • 打赏
  • 举报
回复
问题解决了,谢各位了,结贴
zdm1999 2006-10-17
  • 打赏
  • 举报
回复
to aafshzj() ( )

怎么用VIEWSTATE啊,,,我是一个初习者
zdm1999 2006-10-17
  • 打赏
  • 举报
回复
我试试呢
aafshzj 2006-10-17
  • 打赏
  • 举报
回复
public string StrId
{
get { return this.ViewState["StringId"] as string; }
set { this.ViewState["StringId"] = value; }
}


增加这样一个公开属性,并且把原代码中的m_strId替换成StrId就可以,试试吧。
Csharp110 2006-10-17
  • 打赏
  • 举报
回复
up

62,046

社区成员

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

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

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

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