2012-04-18 44 views
0

爲什麼我得到的錯誤是 數據綁定:_Default+Student does not contain a property called name.數據綁定中繼器。找不到屬性

這是我隱藏:

public class Student 
{ 
     public string name ="Name"; 
     public string favouriteFood = "Favourite food"; 
     public string hobby = "Hobby"; 

} 

protected void Page_Load(object sender, EventArgs e) 
{ 

    Student nino = new Student(); 
    nino.name = "nino"; 
    nino.favouriteFood = "nachos"; 
    nino.hobby = "dancing son"; 


    Student madelene = new Student(); 
    madelene.name = "madelene"; 
    madelene.favouriteFood = "sushi"; 
    madelene.hobby = "dancing casino"; 

    Student baiba = new Student(); 
    baiba.name = "baiba"; 
    baiba.favouriteFood = "bitch soup"; 
    baiba.hobby = "complaining"; 

    ArrayList students = new ArrayList(); 

    students.Add(madelene); 
    students.Add(nino); 
    students.Add(baiba); 

    testRepeater.DataSource = students; 
    testRepeater.DataBind(); 


} 

這是前:

<asp:Repeater runat="server" ID="testRepeater" > 
    <ItemTemplate> 
     <asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' />"></asp:Label> 
    </ItemTemplate> 

</asp:Repeater> 

回答

2

轉換公共變量name成屬性如:

private string _name; 
public string name 
{ 
    get 
    { 
     return _name??"Name"; 
    } 
    set 
    { 
     _name = value; 
    } 
} 

它可以是一個自動屬性,如果你不需要的默認值("Name"),如:

public string name {get;set;}