Ejemplo n.º 1
0
        /// <summary>
        /// <div class="ui-widget ecl-appliedfilters">
        ///    <div class="ui-widget-header">
        ///    Applied Filters
        ///    </div>
        ///    <div class="ui-widget-content">
        ///      <table>
        ///        <tr>
        ///          <td>Friendly Name</td>
        ///          <td>Value</td>
        ///        </tr>
        ///        ...
        ///      </table>
        ///    </div>
        /// </div>
        /// </summary>
        /// <param name="writer"></param>
        protected override void RenderContents(HtmlTextWriter writer)
        {
            EnsureFilterList();
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-widget-header");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.Write("Applied Filters");
            writer.RenderEndTag();      // div
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-widget-content");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.RenderBeginTag(HtmlTextWriterTag.Em);
            // Need to show seconds along with time
            writer.Write("Query executed on {0:F}", DateTime.Now);
            writer.RenderEndTag();

            //Only controls that have either the display value or having some querystring value
            //will be considered to be displayed.
            FilterItem[] filterItems;
            if (this.DisplayEmptyValues)
            {
                filterItems = (from p in _usedParams
                               where !string.IsNullOrEmpty(p.DisplayValue) || !string.IsNullOrEmpty(p.QueryStringValue)
                               select p).ToArray();
            }
            else
            {
                filterItems = (from p in _usedParams
                               where !string.IsNullOrEmpty(p.DisplayValue) && !string.IsNullOrEmpty(p.QueryStringValue)
                               select p).ToArray();
            }

            if (filterItems.Length > 0)
            {
                writer.RenderBeginTag(HtmlTextWriterTag.Table);
                writer.RenderBeginTag(HtmlTextWriterTag.Tbody);
                // Render a filter in Applied Filters if either query string or Display value is available
                foreach (FilterItem li in filterItems)
                {
                    writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                    if (this.WidthLabel != Unit.Empty)
                    {
                        writer.AddStyleAttribute(HtmlTextWriterStyle.Width, WidthLabel.ToString());
                    }
                    writer.RenderBeginTag(HtmlTextWriterTag.Td);
                    if (string.IsNullOrEmpty(li.FriendlyName))
                    {
                        writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
                        writer.Write(li.DisplayValue);
                    }
                    else
                    {
                        writer.Write(li.FriendlyName);
                        writer.RenderEndTag();      //td
                        writer.RenderBeginTag(HtmlTextWriterTag.Td);
                        writer.Write(li.DisplayValue);
                    }
                    writer.RenderEndTag();  //td
                    writer.RenderEndTag();  // tr
                }
                writer.RenderEndTag();      // tbody
                writer.RenderEndTag();      // table
            }
            else
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "ecl-appliedfilters_nofilters");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);
                writer.Write("No filters applied");
                writer.RenderEndTag();
            }
            writer.RenderEndTag();      //div
        }