2012-10-16 133 views
1

我是c#的新手,所以有点卡在我认为是一个非常简单的模块中。我只需要在下拉菜单中显示数据,但在绑定时出现一些错误...或者甚至在绑定之前就会说出来。下面是我想do..I真的很抱歉,如果我做一个很简单的错误,但我尽力&现在我想我需要一些指导..在下拉菜单中填充数据

CustomService.cs

public partial class CustomService 
{ 
public List<Code> GetDepartment(bool activeOnly) 
    { 
     List<Code> retVal = new List<Code>(); 
     ---some code---- 
     return retVal; 
    } 
    } 

ProgramList.ascx.cs

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      List<Code> dept = new List<Code>CustomService.GetDepartment(true); 
      ddlDepartment.DataSource = dept; 
      ddlDepartment.DataBind(); 
     } 
    } 
    //error an object reference is required for an nonstatic field, method or Property CustomService.GetDepartment(true); 

回答

1

您忘记先创建对象,比你可以调用的方法

另一件事是,你只需要直接分配,因为我下面做的价值,也没有必要创建任何新的列表

检查下面的代码将适用于你

CustomService custsrv = new CustomService(); 
List<Code> dept = custsrv.GetDepartment(true); 
+0

CustomService是不同项目中的一个单独的助手类我已经使用Prod.Integration.DataModel为该项目添加了dll;在页面顶部... – Scorpio

+0

我还需要为它创建一个实例吗? – Scorpio

+0

好吧现在我没有错误..它编译得很好,但我没有得到下拉列表中的数据?对不起,另一个问题 – Scorpio

1

为了能够调用方法GetDepartment,你需要有CustomService的新实例创建:

CustomService service = new CustomService(); 
service.GetDepartment(true); 

或使静态方法:

public static List<Code> GetDepartment(bool activeOnly) { } 

但是,如果你把它静态的,驻留在类中通过该方法所使用的每个变量也必须是静态的。

+0

GetDepartment不是静态方法 –

+0

啊!对不起,没有注意到它是在不同的班级。让我失望的是周围没有类定义Page_Load – LightStriker

0

我认为这将有所帮助。

CustomService custS = new CustomService(); 
    ddlDepartment.DataSource = custS.GetDepartment(true); 
    ddlDepartment.DataBind();