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); }
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())); }
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); }
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); }