Rock.Web.UI.Controls.GridFilter.RenderChildren C# (CSharp) Method

RenderChildren() protected method

Outputs the content of a server control's children to a provided T:System.Web.UI.HtmlTextWriter object, which writes the content to be rendered on the client.
protected RenderChildren ( System.Web.UI.HtmlTextWriter writer ) : void
writer System.Web.UI.HtmlTextWriter The object that receives the rendered content.
return void
        protected override void RenderChildren( HtmlTextWriter writer )
        {
            if ( this.Controls != null )
            {
                // wrap filter items in bootstrap responsive grid
                int cellCount = 0;
                const int cellsPerRow = 3;

                // write first row
                writer.AddAttribute("class", "row");
                writer.RenderBeginTag( HtmlTextWriterTag.Div );

                var filterControls = new List<Control>();
                foreach ( Control child in Controls )
                {
                    if ( child is PlaceHolder )
                    {
                        filterControls.AddRange( ( child as PlaceHolder ).Controls.OfType<Control>().ToList() );
                    }
                    else
                    {
                        filterControls.Add( child );
                    }
                }

                foreach ( Control child in filterControls )
                {
                    // write new row
                    if ( cellCount >= cellsPerRow )
                    {
                        writer.RenderEndTag();
                        writer.AddAttribute( "class", "row" );
                        writer.RenderBeginTag( HtmlTextWriterTag.Div );
                        cellCount = 0;
                    }

                    if ( child != _lbFilter && child != _lbClearFilter && child != _hfVisible )
                    {
                        // add column
                        if ( child.Visible )
                        {
                            writer.AddAttribute( "class", "col-lg-4" );
                            writer.RenderBeginTag( HtmlTextWriterTag.Div );
                        }

                        child.RenderControl( writer );

                        if ( child.Visible )
                        {
                            writer.RenderEndTag();
                            cellCount++;
                        }
                    }
                }

                // write end row div
                writer.RenderEndTag();
            }
        }