[英]Why can't I access to a UserControl custom property inside a Repeater?
I'm doing a Data Binding for a 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");
}
but I can't do item.MyCustomID
for example, I can't see that property. 但我无法执行
item.MyCustomID
,例如,我看不到该属性。 Instead, if I move the UserControl outside the Repeater and I do AlumnoBox.MyCustomID
inside the Page Load it works as well. 相反,如果我将UserControl移到Repeater之外,并且在页面加载中执行
AlumnoBox.MyCustomID
,它也可以正常工作。
Where am I wrong? 我哪里错了?
Your UserControl
inherits from UserControl
but you have added addtional properties like MyCustomID
. 您的
UserControl
继承自UserControl
但添加了其他属性,例如MyCustomID
。 Of course you can't access those properties if you cast to UserControl
since the base class does not know them. 当然,如果您强制转换为
UserControl
则不能访问这些属性,因为基类不知道它们。 Instead cast to the right type AlumnoBox
: 而是
AlumnoBox
转换为正确的AlumnoBox
类型:
var item = (context_box_AlumnoBox) e.Item.FindControl("AlumnoBox");
int id = item.MyCustomID;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.