1

私はC#が初めてなので、非常に単純なモジュールだと思っていたものに少し行き詰まりました。ドロップダウンメニューにデータを表示する必要があるだけですが、バインド中にエラーが発生します...またはバインドする前でも言います。これが私がやろうとしていることです..非常に単純な間違いをしている場合は本当に申し訳ありませんが、最善を尽くしました..

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);
4

3 に答える 3

1

GetDepartment メソッドを呼び出せるようにするには、CustomService の新しいインスタンスを作成する必要があります。

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

またはメソッドを静的にするには:

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

ただし、静的にすると、クラス内に存在するそのメソッドで使用されるすべての変数も静的である必要があります。

于 2012-10-16T18:29:20.047 に答える
1

最初にオブジェクトを作成するのを忘れていて、メソッドを呼び出すことができません

別のことは、以下で行ったように値を直接割り当てる必要があるだけです。新しいリストを作成する必要はありません

あなたのために働く以下のコードをチェックしてください

CustomService custsrv = new CustomService();
List<Code> dept = custsrv.GetDepartment(true);
于 2012-10-16T18:29:38.760 に答える
0

これが役立つと思います。

 CustomService custS = new CustomService();
    ddlDepartment.DataSource = custS.GetDepartment(true);
    ddlDepartment.DataBind(); 
于 2012-10-16T18:51:52.200 に答える