Ejemplo n.º 1
0
        public void ToStringReturnsCorrectlyIndentedTable()
        {
            var table = new MultiLevelTagBuilder("table");
              table.MergeAttribute("id", "products");
              table.MergeAttribute("class", "pure-table pure-table-horizontal pure-table-striped");

              var thead = new MultiLevelTagBuilder("thead");
              var headTr = new MultiLevelTagBuilder("tr");
              headTr.Add(new TagBuilder("th") { InnerHtml = "header 1" });
              headTr.Add(new TagBuilder("th") { InnerHtml = "header 2" });
              headTr.Add(new TagBuilder("th") { InnerHtml = "header 3" });
              thead.Add(headTr);
              table.Add(thead);

              var tbody = new MultiLevelTagBuilder("tbody");
              tbody.MergeAttribute("data-bind", "foreach: data");
              var bodyTr = new MultiLevelTagBuilder("tr");
              bodyTr.Add(new TagBuilder("td") { InnerHtml = "field 1" });
              bodyTr.Add(new TagBuilder("td") { InnerHtml = "field 2" });
              bodyTr.Add(new TagBuilder("td") { InnerHtml = "field 3" });
              tbody.Add(bodyTr);
              table.Add(tbody);

              var result = table + Environment.NewLine;

              result.Should().Be(Resources.MLTB_table);
        }
Ejemplo n.º 2
0
        private static MvcHtmlString CreateTable(object htmlAttributes, string collectionName, List <ModelMetadata> relevantProperties)
        {
            var table = new MultiLevelTagBuilder("table");

            table.AddAttributes(htmlAttributes);

            var thead = relevantProperties.CreateTableHeader();

            table.Add(thead);

            var tbody = relevantProperties.CreateTableBody(collectionName);

            table.Add(tbody);

            return(new MvcHtmlString(table.ToString()));
        }
Ejemplo n.º 3
0
        private static TagBuilder CreateTableHeader(this IEnumerable <ModelMetadata> properties)
        {
            var thead = new MultiLevelTagBuilder("thead");

            var tr = new MultiLevelTagBuilder("tr");

            var columns = properties.Select(it => it.GetColumn());

            foreach (var tag in columns)
            {
                tr.Add(tag);
            }

            thead.Add(tr);
            return(thead);
        }
Ejemplo n.º 4
0
        private static TagBuilder CreateTableBody(this IEnumerable <ModelMetadata> properties, string collectionName)
        {
            var tbody = new MultiLevelTagBuilder("tbody");

            tbody.MergeAttribute("data-bind", "foreach: " + collectionName);

            var tr = new MultiLevelTagBuilder("tr");

            tr.MergeAttribute("data-bind", "attr: { 'data-id' : Id }");

            var fields = properties.Select(it => it.GetField());

            foreach (var tag in fields)
            {
                tr.Add(tag);
            }

            tbody.Add(tr);
            return(tbody);
        }