2012-02-16 4 views
0

私は、次のような基本的なリピーターを持っている:あなたはおそらく私BlogItemオブジェクトがないことを考えているDataBinding: 'DocumentWebParts.BlogPostLost.BlogItem' does not contain a property with the name 'Title'.リストにデータバインディングリピータ<T> - Tのプロパティが見つかりません?

ので

This upsets me

<asp:Repeater id="BlogDisplay" runat="server"> 
    <HeaderTemplate> 
     <table> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <tr> 
      <td valign="top" align="left" style="font-weight:bold; padding-left:3px;"> 
       <%# DataBinder.Eval(Container.DataItem, "Title")%> 
      </td> 
     </tr> 
    </ItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 

</asp:Repeater> 

私は、コードを実行すると、私は例外を取得しますTitleのプロパティがありますが、そうではありません。

public class BlogItem 
{ 
    public int Id; 
    public string Body; 
    public string Title; 
    public string Author; 
    public DateTime Published; 
} 

プロパティが確実に設定されています。ブレークポイントをスローすると、すべての値が設定されていることがわかります。

BlogItems = new List<BlogItem>(); 
SPListItem item; 
foreach (SPListItem i in myItems) 
      { 
       //off-topic code hidden 

       BlogItem b = new BlogItem(); 
       b.Id = Id; 
       b.Body = Body; 
       b.Author = Author; 
       b.Title = Title; 
       b.Published = Published; 
       BlogItems.Add(b); 
      } 
      BlogItems = BlogItems.OrderByDescending(x => x.Id).ToList(); 
      BlogDisplay.DataSource = BlogItems; 
      BlogDisplay.DataBind(); 

だから、このすべての光の中で、なぜ私はリピーターにDataBinder.Eval(Container.DataItem, "Title")を使用するときに、私は上記の例外を取得していますか?これに

答えて

9

変更BlogItem:あなたはフィールドを使用している

public class BlogItem 
{ 
    public int Id { get; set; } 
    public string Body { get; set; } 
    public string Title { get; set; } 
    public string Author { get; set; } 
    public DateTime Published { get; set; } 
} 

。プロパティーが必要です。

+0

ガード、私はそれを逃したとは思わない。ありがとう。 – splatto