所以我有一个嵌套类 - 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#工作的原因之一就是强迫自己使用它)而且我几乎还是一个完整的新手到C#和ASP.NET
编辑:
这是ASPX代码:
<asp:ListBox ID="listBox1" runat="server">
</asp:ListBox>
答案 0 :(得分:2)
我认为您需要删除static
功能上的PeerReview
关键字。
答案 1 :(得分:0)
将具有listbox1的对象的引用传递给静态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"]));
//...
}