我想知道如何在Asp.Net Repeater控件的HeaderTemplate或FooterTemplate中找到控件。

我可以在ItemDataBound事件上访问它们,但是我想知道之后如何获取它们(例如,检索页眉/页脚中输入的值)。

注意:我在找到答案后才在此处发布此问题,以便我记住它(也许其他人可能会觉得有用)。

最佳答案

如评论中所述,只有在使用DataBound中继器之后,此功能才起作用。

要在 header 中找到控件:

lblControl = repeater1.Controls[0].Controls[0].FindControl("lblControl");

要在页脚中找到控件:
lblControl = repeater1.Controls[repeater1.Controls.Count - 1].Controls[0].FindControl("lblControl");

使用扩展方法
public static class RepeaterExtensionMethods
{
    public static Control FindControlInHeader(this Repeater repeater, string controlName)
    {
        return repeater.Controls[0].Controls[0].FindControl(controlName);
    }

    public static Control FindControlInFooter(this Repeater repeater, string controlName)
    {
        return repeater.Controls[repeater.Controls.Count - 1].Controls[0].FindControl(controlName);
    }
}

关于asp.net - 如何在转发器的页眉或页脚中查找控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/701412/

10-10 08:58