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 に答える