Search code examples
asp.netrepeaterimagebuttondatalist

How to find control image button inside repeater, which is already inside a datalist


How to find control (i.e image button) inside repeater, that repeater is already in a datalist? because I have to perform delete operation on that image button.

Here is my code, here I'm getting repeater but not image button:

foreach (DataListItem item in Dlist_SearchResult.Controls)
            {

                rptrResult = (Repeater)item.FindControl("Rptr_result");

                imgbtnDelete = (ImageButton)item.FindControl("imgbtnDelete");


            }

Solution

  • You can use Recursion in your FindControl. FindControl by default is not recursive.

    Try this:

    private static Control FindControlRecursive(Control rootCtrl, string ID)
    {
        if (rootCtrl.ID == ID)
            return rootCtrl;
    
        foreach (Control ctr in rootCtrl.Controls)
        {
            Control foundCtl = FindControlRecursive(ctr, ID);
            if (foundCtl != null)
                return foundCtl;
        }
    
        return null;
    }
    

    you can call it

    Button btn = FindControlRecursive((Control)Page,"imgbtnDelete");