3

我有一个默认页面和一个分析页面,在默认情况下,我有一些单选按钮来更改表格,但是在编译时我得到一个“非静态字段需要对象引用”异常,一切都是非静态的,我还没弄清楚为什么会出现这个错误。

这是 _Default 的代码:

public partial class _Default : System.Web.UI.Page {
    public bool Carro {
        get { return radCarroSi.Checked ;}
    }
}

这是分析的代码:

public partial class Analisis : System.Web.UI.Page {
    protected void Page_Load(object sender, EventArgs e) {
        if (!IsPostBack) {
        _Default prevPage = PreviousPage as _Default;
            if (prevPage != null) {
                if (_Default.Carro == true) {
                    row8.Visible = false;
                }
            }
        }
    }
}

你能帮助我吗?我相信这很容易,但由于我是 asp 的新手,所以我还没有看到问题。

提前致谢。

4

2 回答 2

3

您没有以下实例_Default

您只是指类名,而不是类的实例。

进一步详细说明。

public class YourClass 
{
  public bool Carro { get; set; } 
}

YourClass instance = new YourClass();  // this would create a new instance of `YourClass`.

您可以通过使用来引用它,instance.Carro就像您所做的那样_Default.Carro

但是我相信您正在尝试确定是否Carro已在页面中检查了 的值,ASP.NET但不能像这样工作,您需要了解如何管理客户端和服务器之间的状态。这可以通过ViewState, Session, Cookies and Query Strings

于 2013-04-21T17:54:03.193 回答
0

您无法检查是否在其他页面中选中了单选按钮,因此该行在分析页面中不起作用(此外,您甚至没有 _Default 的实例):

    if (_Default.Carro == true) {
        row8.Visible = false;
    }

您需要使用SessionQuerystring或其他方法在页面之间传递单选按钮值

于 2013-04-21T17:56:35.983 回答