请教一下各位,我的目的很简单,在类里有一个成员变量,然后用成员函数改变变量的值
源代码如下using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace QueryDepart
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Button Button2; string i="no change";
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面 } #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
i="changed";
Response.Write(i);
} private void Button2_Click(object sender, System.EventArgs e)
{
Response.Write(i);
}
}
}我的想法是,点了button1以后, 不管点button1或者button2都可以显示“changed”,但是结果就是,点了button1 显示“changed”,点button2还是显示“no change”,难道成员函数不能改变成员变量的值么?没道理啊?还是ASP。net有什么特别的机制虽然可以用其他的方法代替,但我还是想知道原因,谢谢啊
源代码如下using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace QueryDepart
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Button Button2; string i="no change";
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面 } #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
i="changed";
Response.Write(i);
} private void Button2_Click(object sender, System.EventArgs e)
{
Response.Write(i);
}
}
}我的想法是,点了button1以后, 不管点button1或者button2都可以显示“changed”,但是结果就是,点了button1 显示“changed”,点button2还是显示“no change”,难道成员函数不能改变成员变量的值么?没道理啊?还是ASP。net有什么特别的机制虽然可以用其他的方法代替,但我还是想知道原因,谢谢啊
解决方案 »
- ExtJs
- ACCESS数据库,添加数据时报异常,提示 INSERT INTO 语句有错误。怎么改呀?????
- 请教:.net程序建置问题
- 三级联动选择值变化问题,来者有分!有点急,在线等
- 怎样实现在datagrid中,只编辑其中的某一列,其它列只显示内容而不出现textbox框?
- VS不支持FRAMESET
- TreeView导出数据的问题!!!!!
- 在ASP.NET中使用<input type=file>實現上傳時只能上傳小于4M的文件﹐如何解決大于4M文件上傳的問題?
- 关于在.net中直接解压缩的问题,谢谢帮忙了。
- web.config问题?
- 关于asp.net中用函数的问题(急!)
- 点击页面空白处应该是什么事件呢?
在Application里就没问题,在ASP.Net里面就这样~~
当你单击BUTTON1时,变量 i 首先被始化为 “no change”,然后在执行 Button1_Click 函数,在这个函数中把 i 改成 "changed", 时显示正确的结果。
当你单击BUTTON2时,变量 i 又重新被始为 "no change", 然后在执行 Button2_Click 函数,但在这个函数中变没有改变变量,所以显示的还是 "no change".
非常感谢exboy