public override void RenderControl( HtmlTextWriter writer )
{
if ( this.Visible )
{
bool visible = _hfVisible.Value == "true";
writer.AddAttribute( "class", "grid-filter" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
writer.Write( "<header>" );
writer.RenderBeginTag( HtmlTextWriterTag.H3 );
writer.Write( "Filter Options" );
writer.RenderEndTag();
_hfVisible.RenderControl( writer );
writer.AddAttribute( "class", visible ? "fa fa-chevron-up toggle-filter" : "fa fa-chevron-down toggle-filter" );
writer.RenderBeginTag( HtmlTextWriterTag.I );
writer.RenderEndTag();
writer.Write( "</header>" );
// Filter Overview
writer.AddAttribute( "class", "grid-filter-overview" );
if ( visible )
{
writer.AddStyleAttribute( HtmlTextWriterStyle.Display, "none" );
}
writer.RenderBeginTag( HtmlTextWriterTag.Div );
var filterDisplay = new Dictionary<string, string>();
AdditionalFilterDisplay.ToList().ForEach( d => filterDisplay.Add( d.Key, d.Value ) );
var nonEmptyValues = _userPreferences.Where( v => !string.IsNullOrEmpty( v.Value ) ).ToList();
if ( nonEmptyValues.Count > 0 )
{
foreach ( var userPreference in nonEmptyValues )
{
DisplayFilterValueArgs args = new DisplayFilterValueArgs( userPreference );
if ( DisplayFilterValue != null )
{
DisplayFilterValue( this, args );
}
if ( !string.IsNullOrWhiteSpace( args.Value ) )
{
filterDisplay.AddOrIgnore( args.Name, args.Value );
}
}
}
if ( filterDisplay.Any() )
{
writer.RenderBeginTag( HtmlTextWriterTag.Fieldset );
writer.WriteLine( "<h4>Enabled Filters</h4>" );
writer.WriteLine( "<div class='row'>" );
foreach( var filterNameValue in filterDisplay.OrderBy( f => f.Key ) )
{
writer.WriteLine( "<div class='col-md-3'>" );
writer.WriteLine( string.Format( "<label>{0}:</label> {1}", filterNameValue.Key, filterNameValue.Value ) );
writer.WriteLine( "</div>" );
}
writer.WriteLine( "</div>" );
writer.RenderEndTag();
}
writer.RenderEndTag();
// Filter Entry
writer.AddAttribute( "class", "grid-filter-entry" );
if ( !visible )
{
writer.AddStyleAttribute( HtmlTextWriterStyle.Display, "none" );
}
writer.RenderBeginTag( HtmlTextWriterTag.Div );
writer.RenderBeginTag( HtmlTextWriterTag.Fieldset );
writer.Write( "<h4>Filter Options</h4>" );
base.RenderControl( writer );
writer.RenderEndTag();
_lbFilter.RenderControl( writer );
if ( ClearFilterClick != null )
{
writer.WriteLine();
_lbClearFilter.RenderControl( writer );
}
writer.RenderEndTag();
writer.RenderEndTag();
if ( _isDirty )
{
SaveUserPreferences();
_isDirty = false;
}
RegisterJavaScript();
}
}