2010-10-22 70 views
1

我有类Foo它定义属性Id。类Bar继承自Fooclass Bar : Foo)。Eval()和基类属性

如果我分配到List<Bar>然后Repeater.DataSourceItemTemplate使用Eval("Id"),以下异常被抛出:

数据绑定:“酒吧”不包含名为“ID”的属性。

解决方法? Id是Bar的有效属性,它只是在Foo上定义的。

回答

1

它适用于我。也许你有一个可见性问题? Id属性上的访问修饰符是什么?

这里是我的源:

public partial class WebForm1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     List<Bar> bars = new List<Bar>(); 
     bars.Add(new Bar()); 
     bars.Add(new Bar()); 
     bars.Add(new Bar()); 

     Repeater1.DataSource = bars; 
     Repeater1.DataBind(); 
    } 
} 

public class Foo 
{ 
    public Foo() 
    { 
     this.FooProp = "FooPropValue"; 
    } 

    public string FooProp { get; set; } 
} 

public class Bar : Foo 
{ 
    public Bar() 
    { 
     this.BarProp = "BarPropValue!"; 
    } 

    public string BarProp { get; set; } 
} 

而在ASPX我有:

<asp:Repeater ID="Repeater1" runat="server"> 
<ItemTemplate><%# Eval("FooProp")%></ItemTemplate> 
</asp:Repeater> 
+0

太好了,我觉得自己像个白痴。在我的辩护中,这是本周结束。 :) – 2010-10-25 14:58:50