How to find controls in a repeater header or footer

前端 未结 8 2124
离开以前
离开以前 2020-11-28 02:19

I was wondering how one would find the controls in the HeaderTemplate or FooterTemplate of an Asp.Net Repeater control.

I can access them on the ItemDataBound event,

8条回答
  •  情深已故
    2020-11-28 02:58

    As noted in the comments, this only works AFTER you've DataBound your repeater.

    To find a control in the header:

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

    To find a control in the footer:

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

    With extension methods

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

提交回复
热议问题