Search code examples
c#asp.netvb.netrepeater

How to get ItemIndex of RepeaterItem from ImageButton-Click?


i want to convert this vb.net code to 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

i write code block below instead of the code line above but it gives error "Invalid Cast Exception", please help, thanks in advance

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

Solution

  • If the image is in the repeater you have to use it's NamingContainer property to get the RepeaterItem, that is at least the most reliable way, so better than 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;
    }