我正在为转发器做数据绑定:
<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
,它也可以正常工作。
我哪里错了?
答案 0 :(得分:1)
您的UserControl
继承自UserControl
,但您添加了MyCustomID
等附加属性。当然,如果你转换为UserControl
,你就无法访问这些属性,因为基类不知道它们。而是转换为正确的类型AlumnoBox
:
var item = (context_box_AlumnoBox) e.Item.FindControl("AlumnoBox");
int id = item.MyCustomID;