Rock.Web.UI.Controls.NoteControl.RenderControl C# (CSharp) Method

RenderControl() public method

Outputs server control content to a provided T:System.Web.UI.HtmlTextWriter object and stores tracing information about the control if tracing is enabled.
public RenderControl ( System.Web.UI.HtmlTextWriter writer ) : void
writer System.Web.UI.HtmlTextWriter The object that receives the control content.
return void
        public override void RenderControl( HtmlTextWriter writer )
        {
            if ( CSSClass != string.Empty )
            {
                writer.AddAttribute( HtmlTextWriterAttribute.Class, "note " + CSSClass );
            }
            else
            {
                writer.AddAttribute( HtmlTextWriterAttribute.Class, "note" );
            }

            if ( this.NoteId.HasValue )
            {
                writer.AddAttribute( "rel", this.NoteId.Value.ToStringSafe() );
            }
            writer.RenderBeginTag( HtmlTextWriterTag.Div );

            // Edit Mode HTML...
            writer.AddAttribute( HtmlTextWriterAttribute.Class, "panel panel-noteentry" );
            if ( NoteId.HasValue || !AddAlwaysVisible )
            {
                writer.AddStyleAttribute( HtmlTextWriterStyle.Display, "none" );
            }
            writer.RenderBeginTag( HtmlTextWriterTag.Div );

            writer.AddAttribute( HtmlTextWriterAttribute.Class, "panel-body" );
            writer.RenderBeginTag( HtmlTextWriterTag.Div );

            if ( DisplayType == NoteDisplayType.Full && UsePersonIcon )
            {
                writer.Write( Person.GetPersonPhotoImageTag( CreatedByPersonId, CreatedByPhotoId, null, CreatedByGender, null, 50, 50) );
            }

            writer.AddAttribute(HtmlTextWriterAttribute.Class, "noteentry-control");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            _ddlNoteType.RenderControl( writer );
            _tbNote.RenderControl( writer );
            writer.RenderEndTag();

            // The optional create date text box, but only for new notes...
            if (ShowCreateDateInput && !NoteId.HasValue)
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "createDate clearfix");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);
                _dtCreateDate.RenderControl(writer);
                writer.RenderEndTag();  // createDate div
            }

            if (DisplayType == NoteDisplayType.Full)
            {
                // Options
                writer.AddAttribute( HtmlTextWriterAttribute.Class, "settings clearfix" );
                writer.RenderBeginTag( HtmlTextWriterTag.Div );

                writer.AddAttribute( HtmlTextWriterAttribute.Class, "options pull-left" );
                writer.RenderBeginTag( HtmlTextWriterTag.Div );

                if ( ShowAlertCheckBox )
                {
                    _cbAlert.RenderControl( writer );
                }

                if ( ShowPrivateCheckBox )
                {
                    _cbPrivate.RenderControl( writer );
                }

                writer.RenderEndTag();

                if ( ShowSecurityButton && this.NoteId.HasValue )
                {
                    _sbSecurity.EntityId = this.NoteId.Value;
                    _sbSecurity.Title = this.Label;
                    _sbSecurity.RenderControl( writer );
                }

                writer.RenderEndTag();  // settings div
            }

            writer.RenderEndTag();  // panel body

            writer.AddAttribute( HtmlTextWriterAttribute.Class, "panel-footer" );
            writer.RenderBeginTag( HtmlTextWriterTag.Div );

            _lbSaveNote.Text = "Save " + Label;
            _lbSaveNote.RenderControl( writer );

            if ( NoteId.HasValue || !AddAlwaysVisible )
            {
                writer.AddAttribute( HtmlTextWriterAttribute.Class, "edit-note-cancel btn btn-link btn-xs" );
                writer.RenderBeginTag( HtmlTextWriterTag.A );
                writer.Write( "Cancel" );
                writer.RenderEndTag();
            }

            writer.RenderEndTag();  // panel-footer div

            writer.RenderEndTag();  // note-entry div

            if ( NoteId.HasValue )
            {
                // View Mode HTML...
                writer.AddAttribute( HtmlTextWriterAttribute.Class, ArticleClass );
                writer.RenderBeginTag( "article" );

                if ( DisplayType == NoteDisplayType.Full )
                {
                    if ( UsePersonIcon )
                    {
                        writer.Write( Person.GetPersonPhotoImageTag( CreatedByPersonId, CreatedByPhotoId, CreatedByAge, CreatedByGender, null, 50, 50) );
                    }
                    else
                    {
                        writer.AddAttribute( HtmlTextWriterAttribute.Class, IconClass );
                        writer.RenderBeginTag( HtmlTextWriterTag.I );
                        writer.RenderEndTag();
                    }
                }

                writer.AddAttribute( HtmlTextWriterAttribute.Class, "details" );
                writer.RenderBeginTag( HtmlTextWriterTag.Div );

                // first, encode the text to ensure html tags get encoded
                string renderedText = Text.EncodeHtml();

                // convert any http, etc text into clickable links (do this before applying Markdown)
                renderedText = renderedText.Linkify();

                // convert any markdown into HTML, and convert into crlf into <br />
                renderedText = renderedText.ConvertMarkdownToHtml( true );

                if ( DisplayType == NoteDisplayType.Full )
                {
                    // Heading
                    writer.RenderBeginTag( HtmlTextWriterTag.H5 );
                    string heading = Caption;
                    if ( string.IsNullOrWhiteSpace( Caption ) )
                    {
                        heading = CreatedByName;
                    }
                    writer.Write( heading.EncodeHtml() );
                    if ( CreatedDateTime.HasValue )
                    {
                        writer.Write( " " );
                        writer.AddAttribute( "class", "date" );
                        writer.RenderBeginTag( HtmlTextWriterTag.Span );
                        writer.Write( CreatedDateTime.Value.ToRelativeDateString( 6 ) );
                        writer.RenderEndTag();
                    }
                    writer.RenderEndTag();

                    writer.Write( renderedText );
                }
                else
                {
                    writer.Write( renderedText );
                    writer.Write( " - " );
                    if ( !string.IsNullOrWhiteSpace( CreatedByName ) )
                    {
                        writer.AddAttribute( "class", "note-author" );
                        writer.RenderBeginTag( HtmlTextWriterTag.Span );
                        writer.Write( CreatedByName );
                        writer.RenderEndTag();
                        writer.Write( " " );
                    }
                    if ( CreatedDateTime.HasValue )
                    {
                        writer.AddAttribute( "class", "note-created" );
                        writer.RenderBeginTag( HtmlTextWriterTag.Span );
                        writer.Write( CreatedDateTime.Value.ToRelativeDateString( 6 ) );
                        writer.RenderEndTag();
                    }
                }

                writer.RenderEndTag();  // Details Div

                if ( CanEdit )
                {
                    writer.AddAttribute( HtmlTextWriterAttribute.Class, "actions rollover-item" );
                    writer.RenderBeginTag( HtmlTextWriterTag.Div );

                    _lbDeleteNote.RenderControl( writer );

                    writer.AddAttribute( HtmlTextWriterAttribute.Class, "edit-note" );
                    writer.AddAttribute( HtmlTextWriterAttribute.Href, "#" );
                    writer.RenderBeginTag( HtmlTextWriterTag.A );
                    writer.AddAttribute( HtmlTextWriterAttribute.Class, "fa fa-pencil" );
                    writer.RenderBeginTag( HtmlTextWriterTag.I );
                    writer.RenderEndTag();
                    writer.RenderEndTag();  // A

                    writer.RenderEndTag();  // actions
                }

                writer.RenderEndTag();  // article
            }

            writer.RenderEndTag();
        }

Usage Example

Example #1
0
 private void RenderNewNoteControl(HtmlTextWriter writer)
 {
     writer.AddAttribute(HtmlTextWriterAttribute.Class, "note-new");
     writer.RenderBeginTag(HtmlTextWriterTag.Div);
     _noteNew.RenderControl(writer);
     writer.RenderEndTag();
 }