如何从 ImageButton-Click 获取 RepeaterItem 的 ItemIndex?

How to get ItemIndex of RepeaterItem from ImageButton-Click?

我想将此 vb.net 代码转换为 C#:

Protected Sub btnDilSil_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
    Dim index As Integer = CType(sender.Parent, RepeaterItem).ItemIndex
End Sub

我在下面写了代码块而不是上面的代码行但是它给出了错误"Invalid Cast Exception",请帮忙,提前谢谢

protected void btnDilSil_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
    int index = ((RepeaterItem)sender).ItemIndex;
}

如果图像在中继器中,则必须使用它的 NamingContainer 属性 来获取 RepeaterItem,这至少是最可靠的方法,比 Parent.Parent:

protected void btnDilSil_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
    var img = (Control) sender;
    var item = (RepeaterItem) img.NamingContainer;
    int index = item.ItemIndex;
}