Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"DataBinding: 'index+NewsItem' does not contain a property with the name 'Link'", but property exists (Not a Typo)

First I have a repeater, and I'm outputting a property. I have tried both

<%#Eval("Link")%>

and

<%#DataBinder.Eval(Container.DataItem, "Link")%>

I have a simple class

public class NewsItem  
{  
    public string Link = "";  
    public string Title = "";  
}  

I populate a List news with with a simple for... each, and then...

repeater.DataSource = news;
repeater.DataBind();

and I get "DataBinding: 'index+NewsItem' does not contain a property with the name 'Link'

like image 723
Russell Steen Avatar asked Sep 01 '11 14:09

Russell Steen


1 Answers

You have created fields, not properties

To turn them into properties, adjust your code like this

public class NewsItem  
{  
     public string Link { get; set; }
     public string Title { get; set; }              

     public NewsItem()
     {
           this.Link = string.Empty;
           this.Title = string.Empty;
     }
}  
like image 180
havardhu Avatar answered Nov 12 '22 06:11

havardhu