2012-10-16 174 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();