/// <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) { bool visible = _hfVisible.Value == "true"; writer.AddAttribute("class", "grid-filter"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write("<header>"); writer.AddAttribute(HtmlTextWriterAttribute.Class, visible ? "btn btn-link btn-xs btn-filter-toggle is-open" : "btn btn-link btn-xs btn-filter-toggle"); writer.RenderBeginTag(HtmlTextWriterTag.Button); writer.Write("Filter Options"); _hfVisible.RenderControl(writer); writer.AddAttribute("class", visible ? "btn-icon fa fa-chevron-up toggle-filter" : "btn-icon fa fa-chevron-down toggle-filter"); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); 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)); List <UserPreference> userPreferencesForFilter; if (this.UserPreferenceKeyPrefix.IsNotNullOrWhiteSpace()) { userPreferencesForFilter = _userPreferences.Where(a => a.Key.StartsWith(this.UserPreferenceKeyPrefix)).ToList(); } else { userPreferencesForFilter = _userPreferences; } var nonEmptyValues = userPreferencesForFilter.Where(v => !string.IsNullOrEmpty(v.Value)).ToList(); if (nonEmptyValues.Count > 0) { foreach (var userPreference in nonEmptyValues) { DisplayFilterValueArgs args = new DisplayFilterValueArgs(userPreference, this.UserPreferenceKeyPrefix); if (DisplayFilterValue != null) { DisplayFilterValue(this, args); } if (!string.IsNullOrWhiteSpace(args.Value)) { filterDisplay.AddOrReplace(args.Name, args.Value); } } } if (filterDisplay.Any()) { writer.RenderBeginTag(HtmlTextWriterTag.Fieldset); writer.WriteLine("<h4>Enabled Filters</h4>"); writer.WriteLine("<div class='row'>"); // Calculate the filter column size by dividing the Bootstrap 12-column layout into equal widths. int columnSize = (this.FieldLayout == GridFilterLayoutSpecifier.TwoColumnLayout) ? 6 : 4; foreach (var filterNameValue in filterDisplay.OrderBy(f => f.Key)) { writer.WriteLine("<div class='col-md-{0}'>", columnSize); 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(); } }
/// <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) { 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 nonEmptyValues = _userPreferences.Where(v => !string.IsNullOrEmpty(v.Value)).ToList(); StringBuilder filtersHtml = new StringBuilder(); 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)) { filtersHtml.AppendLine("<div>"); filtersHtml.AppendLine(string.Format("<label>{0}:</label> {1}", args.Name, args.Value)); filtersHtml.AppendLine("</div>"); } } } if (filtersHtml.Length > 0) { writer.RenderBeginTag(HtmlTextWriterTag.Fieldset); writer.Write("<h4>Enabled Filters</h4>"); writer.Write(filtersHtml.ToString()); 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); writer.RenderEndTag(); writer.RenderEndTag(); if (_isDirty) { SaveUserPreferences(); _isDirty = false; } RegisterJavaScript(); } }
/// <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 ) { 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 nonEmptyValues = _userPreferences.Where( v => !string.IsNullOrEmpty( v.Value ) ).ToList(); StringBuilder filtersHtml = new StringBuilder(); if ( nonEmptyValues.Count > 0 ) { foreach ( var userPreference in nonEmptyValues ) { DisplayFilterValueArgs args = new DisplayFilterValueArgs( userPreference.Key, userPreference.Value ); if ( DisplayFilterValue != null ) { DisplayFilterValue( this, args ); } if ( !string.IsNullOrWhiteSpace( args.Value ) ) { filtersHtml.AppendLine( "<div>" ); filtersHtml.AppendLine( string.Format( "<label>{0}:</label> {1}", args.Key, args.Value ) ); filtersHtml.AppendLine( "</div>" ); } } } if ( filtersHtml.Length > 0 ) { writer.RenderBeginTag( HtmlTextWriterTag.Fieldset ); writer.Write( "<h4>Enabled Filters</h4>" ); writer.Write( filtersHtml.ToString() ); 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 ); writer.RenderEndTag(); writer.RenderEndTag(); if ( _isDirty ) { SaveUserPreferences(); _isDirty = false; } RegisterJavaScript(); } }
/// <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) { 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(); } }
/// <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 ) { 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(); } }
/// <summary> /// Sends server control content to a provided <see cref="T:System.Web.UI.HtmlTextWriter" /> object, which writes the content to be rendered on the client. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> object that receives the server control content.</param> protected override void Render(System.Web.UI.HtmlTextWriter writer) { writer.AddAttribute("class", "grid-filter"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write("<header>"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute("class", "icon-filter"); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); writer.RenderBeginTag(HtmlTextWriterTag.H3); writer.Write("Filter Options"); writer.RenderEndTag(); writer.AddAttribute("class", "icon-chevron-down toggle-filter"); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); writer.RenderEndTag(); writer.Write("</header>"); // Filter Overview writer.AddAttribute("class", "grid-filter-overview"); writer.RenderBeginTag(HtmlTextWriterTag.Div); var nonEmptyValues = _userValues.Where(v => !string.IsNullOrEmpty(v.Value)).ToList(); if (nonEmptyValues.Count > 0) { writer.RenderBeginTag(HtmlTextWriterTag.Fieldset); writer.RenderBeginTag(HtmlTextWriterTag.Legend); writer.Write("<h4>Enabled Filters</h4>"); writer.RenderEndTag(); foreach (var userValue in nonEmptyValues) { DisplayFilterValueArgs args = new DisplayFilterValueArgs(userValue.Key, userValue.Value); if (DisplayFilterValue != null) { DisplayFilterValue(this, args); } writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write(string.Format("{0}: {1}", args.Key, args.Value)); writer.RenderEndTag(); } writer.RenderEndTag(); } writer.RenderEndTag(); // Filter Entry writer.AddAttribute("class", "grid-filter-entry"); writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.RenderBeginTag(HtmlTextWriterTag.Fieldset); writer.RenderBeginTag(HtmlTextWriterTag.Legend); writer.Write("<h4>Filter Options</h4>"); writer.RenderEndTag(); base.Render(writer); writer.RenderEndTag(); lbFilter.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); SaveUserValues(); }