internal string Build(Configuration configuration)
 {
     var visibility = Utilities.EvalExpression(_visibility);
     if (visibility == ColumnVisibility.None)
     {
         return string.Empty;
     }
     var td = new TagBuilder("td");
     if (_colSpan > 1)
     {
         td.Attributes.Add("colspan", _colSpan.ToString());
     }
     var format = Utilities.EvalExpression(_format, null);
     td.InnerHtml = Utilities.GetText(format, configuration.GetWhiteSpace());
     if (!string.IsNullOrWhiteSpace(_class))
     {
         td.AddCssClass(_class);
     }
     Utilities.SetAttributes(td, _attributes);
     if (visibility == ColumnVisibility.Hidden)
     {
         td.Attributes.Add("style", "display: none;");
     }
     return td.ToString();
 }
        internal string Build(Configuration configuration)
        {
            var visibility = Utilities.EvalExpression(_visibility);

            if (visibility == ColumnVisibility.None)
            {
                return(string.Empty);
            }
            var td = new TagBuilder("td");

            if (_colSpan > 1)
            {
                td.Attributes.Add("colspan", _colSpan.ToString());
            }
            var format = Utilities.EvalExpression(_format, null);

            td.InnerHtml = Utilities.GetText(format, configuration.GetWhiteSpace());
            if (!string.IsNullOrWhiteSpace(_class))
            {
                td.AddCssClass(_class);
            }
            Utilities.SetAttributes(td, _attributes);
            if (visibility == ColumnVisibility.Hidden)
            {
                td.Attributes.Add("style", "display: none;");
            }
            return(td.ToString());
        }
        internal string BuildHeader(Uri url, Configuration configuration)
        {
            var th         = new TagBuilder("th");
            var visibility = Utilities.EvalExpression(_visibility);

            if (visibility == ColumnVisibility.None)
            {
                return(string.Empty);
            }
            if (_sortable)
            {
                var a = new TagBuilder("a")
                {
                    InnerHtml = _headerText
                };
                NameValueCollection parameters = Utilities.ParseQueryString(url.Query);

                parameters.Remove("page");
                var sort    = parameters["sort"];
                var sortDir = "ASC";
                if (!string.IsNullOrWhiteSpace(sort) && sort == _sortBy)
                {
                    sortDir = parameters["sortdir"];
                    sortDir = sortDir == "ASC" ? "DESC" : "ASC";
                }
                parameters["sort"]    = _sortBy;
                parameters["sortdir"] = sortDir;
                var href = Utilities.AppendParametersToUrl(url.LocalPath, parameters);
                a.Attributes.Add("href", href);
                if (!string.IsNullOrEmpty(_onSort))
                {
                    var onClick = string.Format("javascript:{0}(\"{1}\",\"{2}\",\"{3}\");return false;", _onSort, href, _sortBy, sortDir);
                    a.Attributes.Add("onclick", onClick);
                }
                th.InnerHtml = a.ToString();
            }
            else
            {
                th.InnerHtml = Utilities.GetText(_headerText, configuration.GetWhiteSpace());
            }
            var headerClass = Utilities.EvalExpression(_headerClass);

            if (!string.IsNullOrWhiteSpace(headerClass))
            {
                th.AddCssClass(headerClass);
            }
            if (visibility == ColumnVisibility.Hidden)
            {
                th.Attributes.Add("style", "display: none;");
            }
            return(th.ToString());
        }
        internal string BuildContent(T item, Configuration configuration)
        {
            var visibility = Utilities.EvalExpression(_visibility);

            if (visibility == ColumnVisibility.None)
            {
                return(string.Empty);
            }
            var format = Utilities.EvalExpression(_format, item);
            var td     = new TagBuilder("td")
            {
                InnerHtml = Utilities.GetText(format, configuration.GetWhiteSpace())
            };
            var @class = Utilities.EvalExpression(_class, item);

            if (!string.IsNullOrWhiteSpace(@class))
            {
                td.AddCssClass(@class);
            }
            td.Attributes.Add("data-role", "column");
            var name = !string.IsNullOrWhiteSpace(_name) ? _name : _sortBy;

            if (!string.IsNullOrWhiteSpace(name))
            {
                td.Attributes.Add("data-column-name", name);
            }
            foreach (var attribute in _attributes)
            {
                var key        = attribute.Item1;
                var expression = attribute.Item2;
                var value      = Utilities.EvalExpression(expression, item);
                if (!string.IsNullOrWhiteSpace(value))
                {
                    td.MergeAttribute(key, value, true);
                }
            }
            if (visibility == ColumnVisibility.Hidden)
            {
                td.Attributes.Add("style", "display: none;");
            }
            return(td.ToString());
        }
Esempio n. 5
0
 private void SetFooterColumns(TagBuilder tfoot)
 {
     if (_footerColumns.Any())
     {
         FixColSpanIfUniqueFooterColumn();
         var tr = new TagBuilder("tr");
         tr.Attributes.Add("data-role", "footer");
         _footerColumns.ForEach(item =>
         {
             tr.InnerHtml += item.Build(_configuration);
         });
         var numberOfColSpan = _footerColumns
                               .Where(fc => fc.GetVisibility() == ColumnVisibility.Visible)
                               .Sum(fc => fc.GetColSpan());
         var numberOfVisibleColumns = GetNumberOfVisibleColumns();
         if (numberOfColSpan < numberOfVisibleColumns)
         {
             tr.InnerHtml += string.Format("<td colspan='{0}'>{1}</td>",
                                           numberOfVisibleColumns - numberOfColSpan,
                                           Utilities.GetText("", _configuration.GetWhiteSpace()));
         }
         tfoot.InnerHtml += tr.ToString();
     }
 }