【问题标题】:At with stage I need to create an object disclose to the button methods?在与阶段我需要创建一个对象披露按钮方法?
【发布时间】:2013-01-15 14:50:39
【问题描述】:

我有这个方法,由客户端的LinkButton 调用(回发),由用户:

protected void myOwnMethod_Click(object sender, EventArgs e)
{
    myObject.Word = "Word";
}

好吧,myObject 必须在之前已经实例化,所以它必须在此处和之后都可以访问(在 Page_Load 状态下)。

其实在Page_Load实例化它我就明白了

"System.NullReferenceException: 对象引用未设置为 对象的实例。”

【问题讨论】:

  • 不清楚你在问什么。您是否正在寻找 myObject 的实例化位置?我们不知道myObject是什么,所以我们无法知道。
  • @J.斯蒂恩:我知道!那么我需要使用哪个页面?
  • @J.Steen 我也这么认为,但据此:msdn.microsoft.com/en-us/library/ms178472%28VS.100%29.aspx 控制事件(如按钮单击)在页面加载后发生。几年没做重度 ASP.NET 了,可能我记性不太好。
  • @ChrisSinclair 是的 - 我可以发誓点击在加载之前发生,但我已经有几年没有做网络表单了。 ^^;
  • 我们都可以猜测答案(有些答案已经在下面了),但我只是没有在问题中看到足够的信息以供使用。什么是myObject,它应该在哪里实例化?它是如何使用的?它的范围是什么?也许用最少的代码重现问题并共享整个代码隐藏文件?

标签: c# .net webforms


【解决方案1】:

如果必须在每次回发时重新创建一个对象,最好的办法是在 Page_Init 中实例化它

protected void Page_Init(object sender, EventArgs e)
{
    myObject = new MyObject();
}

注意:如果动态创建的对象有/使用视图状态,它应该Page_Init之后自动恢复。例如:文本框保留它的值。

【讨论】:

  • 我没有给你-1,所以我不能详细说明为什么给你-1:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
相关资源
最近更新 更多