2012-03-15 13 views
1

私はドロップダウンを一般的なリストにバインドしたいと思います。ドロップダウンは一般的なリストにバインドします

それは本当に簡単なようだが、私はここに、クラスのための私のコードですエラーDataBinding: 'InternalPurchasingForms.Types.Item' does not contain a property with the name 'itemID'.

を得続ける:

namespace InternalPurchasingForms.Types 
{ 
    public class Item 
    { 
    public int itemID; 
    public String name; 
    //... 
    } 
} 

はここに私のドロップダウンデータバインディングコードです:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
     List<Item> allItems = DataAccessLayer.getAllItems(); 
     uxDropDownItemList.DataSource = allItems; 
     uxDropDownItemList.DataValueField = "itemID"; 
     uxDropDownItemList.DataTextField = "name"; 
     uxDropDownItemList.DataBind(); 
     } 
    } 

は私が伝えたいです各行の "値"がItem.itemIDであり、 "テキスト"がItem.Nameですが、ASP.NETはそれらのフィールドがItem内に存在しないと伝えています。私はItemのフィールドに他の場所でもうまくアクセスできます。

これを正しく行うにはどうすればよいですか?

+0

「アイテム」というページがありますか? – Shyju

+0

いいえ、私は 'Item'というクラスを持っています。 –

答えて

3

itemIDとnameにItemクラスのgetterとsetterを使用していることを確認してください。

+0

Aha!ありがとう、これだった。 (あなたが最初に答えた) –

1

このようにプロパティを設定していて、プルダウンでバインドしている間はうまく機能しています。

private int _itemid= 0; 
private string _name = ""; 
public string name 
{ 
    set { _name = value; } 
    get { return _name ; } 
} 
public int itemID 
{ 
    set { _itemid= value; } 
    get { return _itemid; } 
} 
関連する問題