1

如何在中继器中找到控件(即图像按钮),该中继器已经在数据列表中?因为我必须对该图像按钮执行删除操作。

这是我的代码,这里我得到中继器但不是图像按钮:

foreach (DataListItem item in Dlist_SearchResult.Controls)
            {

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

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


            }
4

1 回答 1

0

您可以在 FindControl 中使用递归。FindControl 默认不是递归的。

试试这个:

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;
}

你可以叫它

Button btn = FindControlRecursive((Control)Page,"imgbtnDelete");
于 2013-01-23T04:58:32.887 回答