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 GetObject { /// <summary> /// WebShow 的摘要说明。 /// </summary> public class WebShow : System.Web.UI.Page { public System.Web.UI.WebControls.TextBox TextBox1;
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); }
你这样传入值根本没有用,就算你在 Object.TextBox1.Text = "I Miss You LL\r"; Object.TextBox1.Text = "What Happen"; 这里赋值成功了! 当你转到那个页面的时候根本就没有值,他们根本就不是同一个对象了!你要传值,就直接 Response.Redirect("WebShow.aspx?value"+你要传的值); 应该这样来传!或者是其他方法(Session,Cookies等)你这样是不行的
我是这样做的 比如在A类中调用B类的对象Object
B:
A obj = new A();
然后再用obj;
然后用实例名.方法()或实例名.属性
来调用即可,如果是static方法(属性)\
直接用类名.方法(属性)调用即可
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 51: WebShow Object = new WebShow();
行 52: //Object.Page_Load();
行 53: Object.TextBox1.Text = "I Miss You LL\r";
行 54: Object.TextBox1.Text = "What Happen";
行 55: Response.Redirect("WebShow.aspx",true);
这个类的代码贴出来!
应该是你这个的问题!
可能是我菜了!我还没看到这样用TextBox的!
不知道其他人看过没?
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 GetObject
{
/// <summary>
/// WebShow 的摘要说明。
/// </summary>
public class WebShow : System.Web.UI.Page
{
public System.Web.UI.WebControls.TextBox TextBox1;
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.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
全是自动生成的 我没有动
你里面什么都没有,当然TextBox1就没有了啊!
肯定会错了噻!
我就是要给WebShow类里面的TextBox传入值啊
这还有什么诀窍吗
在你cs类里只有public System.Web.UI.WebControls.TextBox TextBox1;
这个只是定义这么一个变量!
而并没有将它实例化!你可能是觉得在我们做web页面,运行它的时候这样却又是可以的!你这样也会可以是吧?你这样就不行了,原因应该是vs.net的那个什么结构什么的,具体我也说不上来!
Object.TextBox1.Text = "I Miss You LL\r";
Object.TextBox1.Text = "What Happen";
这里赋值成功了!
当你转到那个页面的时候根本就没有值,他们根本就不是同一个对象了!你要传值,就直接
Response.Redirect("WebShow.aspx?value"+你要传的值);
应该这样来传!或者是其他方法(Session,Cookies等)你这样是不行的
然后调用另一个页面就出错了
那我应该怎么做呢
我发现我对这些东西真的很困惑啊
我还应该在WebShow里面怎么将TextBox1实例化啊
以前在vc和cb中我那样写都是可以的
已经习惯了
里面的A()到底做了什么,你看webshow的类里面并没有A()函数,所以.net为你默认的创建了一个什么也不做的构造器,而你的textbox是在InitializeComponent();这个函数里面初始化的
所以你的textbox也就不会实例化了,这仅仅是单从c#的语法上来分析,如果你要在页面之间传递参数的话,可以使用session,或者使用地址来传递,有很多种方法的~