Daarwin
Daarwin

Reputation: 3014

Databinding repeater. Property not found

Why am i getting the error that DataBinding: _Default+Student does not contain a property called name.

This is my CodeBehind:

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


}

This is the front:

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

</asp:Repeater>

Upvotes: 0

Views: 1168

Answers (1)

mshsayem
mshsayem

Reputation: 18008

Convert the public variable name into a property like:

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

It can be an auto property, if you dont need a default value ("Name") like:

public string name {get;set;}

Upvotes: 2

Related Questions