0

为什么我收到 DataBinding 的错误:_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>
4

1 回答 1

2

将公共变量name转换为如下属性:

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

如果您不需要默认值 ( "Name"),它可以是自动属性,例如:

public string name {get;set;}
于 2012-04-18T10:20:59.883 回答