/// <summary> /// Outputs server control content to a provided <see cref="T:System.Web.UI.HtmlTextWriter" /> object and stores tracing information about the control if tracing is enabled. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> object that receives the control content.</param> public override void RenderControl( HtmlTextWriter writer ) { if ( this.Visible ) { // Section writer.AddAttribute( HtmlTextWriterAttribute.Class, "panel panel-widget rock-panel-widget " + CssClass ); writer.AddAttribute( HtmlTextWriterAttribute.Id, this.ClientID ); writer.RenderBeginTag( "section" ); // Header writer.AddAttribute( HtmlTextWriterAttribute.Class, "panel-heading clearfix" ); writer.RenderBeginTag( "header" ); // Hidden Field to track expansion writer.AddAttribute( HtmlTextWriterAttribute.Class, "filter-expanded" ); _hfExpanded.RenderControl( writer ); // Title writer.AddAttribute( HtmlTextWriterAttribute.Class, "pull-left" ); writer.RenderBeginTag( HtmlTextWriterTag.Div ); writer.RenderBeginTag( HtmlTextWriterTag.Span ); writer.Write( Title ); writer.RenderEndTag(); writer.RenderEndTag(); // Panel Controls writer.AddAttribute( HtmlTextWriterAttribute.Class, "pull-right" ); writer.RenderBeginTag( HtmlTextWriterTag.Div ); if ( ShowReorderIcon ) { // Reorder Icon writer.AddAttribute( HtmlTextWriterAttribute.Class, "btn btn-xs panel-widget-reorder" ); writer.RenderBeginTag( HtmlTextWriterTag.A ); writer.AddAttribute( HtmlTextWriterAttribute.Class, "fa fa-bars" ); writer.RenderBeginTag( HtmlTextWriterTag.I ); writer.RenderEndTag(); writer.RenderEndTag(); } // Chevron up/down Button writer.AddAttribute( HtmlTextWriterAttribute.Class, "btn btn-xs view-state" ); writer.RenderBeginTag( HtmlTextWriterTag.A ); writer.AddAttribute( HtmlTextWriterAttribute.Class, Expanded ? "fa fa-chevron-up" : "fa fa-chevron-down" ); writer.RenderBeginTag( HtmlTextWriterTag.I ); writer.RenderEndTag(); writer.RenderEndTag(); if ( ShowDeleteButton ) { _lbDelete.Visible = true; _lbDelete.RenderControl( writer ); } else { _lbDelete.Visible = false; } writer.RenderEndTag(); // pull-right writer.RenderEndTag(); // Header // Body writer.AddAttribute( HtmlTextWriterAttribute.Class, "panel-body" ); if ( !Expanded ) { writer.AddStyleAttribute( HtmlTextWriterStyle.Display, "none" ); } writer.RenderBeginTag( HtmlTextWriterTag.Div ); // Render placeholder's child controls if ( this.Controls != null ) { var builtInControls = new Control[] { _hfExpanded, _lbDelete }; foreach ( Control child in this.Controls ) { if ( !builtInControls.Contains( child ) ) { child.RenderControl( writer ); } } } writer.RenderEndTag(); writer.RenderEndTag(); // Section } }