aspx.cs中普通变量的问题

krpol 2003-09-28 08:30:52
我在page类中放一个 bool的普通变量,想再每次单击一个按钮时改变bool值,来
使label种显示不同的文本,但是发现bool被改一次后就每被再改回来,这使怎么
回事呢??


public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Button Button1;
protected bool clicked ;

public WebForm1()
{
Page.Init += new System.EventHandler(Page_Init);
clicked = true ;// 初始赋值

}

//一些没用的去掉了

private void Button1_Click(object sender, System.EventArgs e)
{
if(clicked==false)
{
clicked=true;
Label1.Text="iloveyou";
}
else
{
clicked=false;
Label1.Text="youloveme";
}
}


}

每次刷新都是youloveme.
...全文
27 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gordenfl 2003-09-29
  • 打赏
  • 举报
回复
在申明的时候使用static 来修饰把他变成静态变量!
祝你的成功!
krpol 2003-09-29
  • 打赏
  • 举报
回复
谢谢楼上各位的指点~~~

还有webform是每此被访问一次都要重新构造吗??
krpol 2003-09-29
  • 打赏
  • 举报
回复
今天看了些书,好像使控件的生命期问题,我现在还有一个问题,
那就是WebService类使什么时候初始化的??使同一个名字空间种
的 .aspx第一次被访问时触发的吗?
竹君子 2003-09-28
  • 打赏
  • 举报
回复
页面刷新一次, WebForm1()就初始化一次。

所以clicked 不要赋初值。
我调试过了
public WebForm1()
{
Page.Init += new System.EventHandler(Page_Init);

}


private void button1_Click(object sender, System.EventArgs e)
{
if(clicked==false)
{
clicked=true;
label1.Text="iloveyou";
}
else
{
clicked=false;
label1.Text="youloveme";
}

}
coollzh 2003-09-28
  • 打赏
  • 举报
回复
可以用隐藏域
sunpopoapollo 2003-09-28
  • 打赏
  • 举报
回复
使用ViewState存放吧,即使页面刷新,修改过的,存放在ViewState里的值也不会被改回来的.
树猫 2003-09-28
  • 打赏
  • 举报
回复
按钮单击一次,页面刷新一次,bool值当然就被再改回来了。用另外的东西存储 例如 sesson
或者自己的静态类

62,050

社区成员

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

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

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

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