为什么我无法访问Repeater中的UserControl自定义属性?

时间:2015-07-09 15:08:21

标签: c# .net webforms user-controls repeater

我正在为转发器做数据绑定:

<asp:Repeater ID="rptAlumni" runat="server" OnItemDataBound="rptAlumni_DataBinding">
    <ItemTemplate>
        <uc1:AlumnoBox runat="server" ID="AlumnoBox" />
    </ItemTemplate>
</asp:Repeater>

protected void rptAlumni_DataBinding(object sender, RepeaterItemEventArgs e)
{
    var item = (UserControl)e.Item.FindControl("AlumnoBox");
}

但我不能item.MyCustomID例如,我无法看到该属性。相反,如果我将UserControl移动到Repeater之外,并且我在页面加载中执行AlumnoBox.MyCustomID,它也可以正常工作。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

您的UserControl继承自UserControl,但您添加了MyCustomID等附加属性。当然,如果你转换为UserControl,你就无法访问这些属性,因为基类不知道它们。而是转换为正确的类型AlumnoBox

var item = (context_box_AlumnoBox) e.Item.FindControl("AlumnoBox"); 
int id = item.MyCustomID;