【问题标题】:Databinding repeater to List<T> - can't find property of T?数据绑定中继器到 List<T> - 找不到 T 的属性?
【发布时间】:2012-02-16 20:21:12
【问题描述】:

我有一个这样的基本中继器:

<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>

当我执行代码时出现异常:DataBinding: 'DocumentWebParts.BlogPostLost.BlogItem' does not contain a property with the name 'Title'.

所以您可能认为我的 BlogItem 对象没有 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") 时会出现上述异常?

【问题讨论】:

    标签: asp.net data-binding repeater


    【解决方案1】:

    将 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; }
    }
    

    您正在使用字段;它需要属性。

    【讨论】:

    • 天啊,我不敢相信我错过了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-05-12
    • 2013-10-24
    • 1970-01-01
    • 2012-12-11
    • 2010-09-12
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    相关资源
    最近更新 更多