1

だから私はネストされたクラス - PeerReviews を持っています。ASPX ページにリストボックスを作成しようとしていますが、次のように PeerReviews のオブジェクトをインスタンス化しています。

PeerReviews obj = new PeerReviews();

ただし、この行がコードで問題を引き起こしているというエラーが表示されます。

listBox1.Items.Add(new ListItem(r["first_name"], r["first_name"]));

ネストされたクラスの完全なコードは次のとおりです。

class PeerReviews
        {
            private static void PeerReview()
            {


                MySqlConnection con = new MySqlConnection("server=localhost;database=hourtracking;uid=username;password=password");
                MySqlCommand cmd = new MySqlCommand("select first_name from employee where active_status=1", con);
                con.Open();
                MySqlDataReader r = cmd.ExecuteReader();

                while (r.Read())
                {
                    listBox1.Items.Add(new ListItem(r["first_name"], r["first_name"]));
                }
                con.Close();


            }
        }

リストボックス項目を参照するにはどうすればよいですか? オブジェクトとしてインスタンス化しようとしました(正しくないようです)。

私は OOP プログラミングに関してはまあまあです (いくつかやったことがありますが、私が C# で作業している理由の 1 つは、自分自身に強制的にそれを使用させるためです)。 ASP.NET

編集:

これは ASPX コードです。

<asp:ListBox ID="listBox1" runat="server">
</asp:ListBox>
4

2 に答える 2

2

static関数のキーワードを削除する必要があると思いますPeerReview

于 2012-10-25T13:45:17.807 に答える
0

listbox1 を持つオブジェクトへの参照を static PeerReview メソッドに渡します。クラスの静的メソッドは、そのクラスまたは他のクラスの静的フィールド/プロパティ/メソッドにアクセスできません。他の静的クラス フィールド/プロパティ/メソッド、ローカル変数、および引数にのみアクセスできます。

次のようなものが必要です(System.Web.UI.PageのインスタンスがlistBox1を保持しているかどうかはわかりませんが、私は探求しています)

private static void PeerReview(System.Web.UI.Page page)
{
//...
page.listBox1.Items.Add(new ListItem(r["first_name"], r["first_name"]));
//...
}

またはローリングが言ったように:

    private static void PeerReview(System.Web.UI.WebControls.ListBox listbox)
    {
    //...
    listbox.Items.Add(new ListItem(r["first_name"], r["first_name"]));
    //...
    }
于 2012-10-25T13:46:29.517 に答える