Cómo hacer una tabla html de comparación usando el repetidor asp (rotación de datos)

Necesito hacer una tabla de comparación en formato HTML, el problema es que los elementos en la base de datos vienen en forma de columnas, pero en la tabla de comparación debe ser una fila.

Ejemplo

Los datos en la base de datos se parecen a los siguientes

ID Name Color Weight ------------------------------- 1 Ball Red 10 2 Table Black 50 3 Chair Green 30 

Y debe verse como el siguiente en la tabla de comparación

 ID 1 2 3 Name Ball Table Chair Color Red Black Green Weight 10 50 30 

Estoy usando ASP.NET con repetidor pero no funcionó. ¿Pueden ayudarme a encontrar la mejor manera de hacerlo?

Debo usar algo así como un repetidor porque el número de columnas en la tabla de comparación varía.

Una posible solución:

Dado el siguiente DataTable como fuente de datos:

 protected DataTable Data { get { if (ViewState["Data"] == null) { DataTable table = new DataTable(); table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name"); table.Columns.Add("Color"); table.Columns.Add("Weight", typeof(int)); table.Rows.Add(1, "Ball", "Red", 10); table.Rows.Add(2, "Table", "Black", 50); table.Rows.Add(3, "Chair", "Green", 30); ViewState["Data"] = table; } return (DataTable)ViewState["Data"]; } } 

Y algunos códigos ASP para hacer bucles y construir la tabla:

  <% for (int i = 0; i < Data.Columns.Count; i++) { %>  <% for (int j = 0; j < Data.Rows.Count; j++) { %>  <% } %>  <% } %> 
<%= Data.Columns[i].ColumnName %><%= Data.Rows[j][i] %>

Así que esto no es para ASP.NET, pero es posible que pueda convertirlo. Este es el código que uso para crear tablas dinámicas dinámicas en SQL Server. Esto le permite hacer lo que quiera sin tener que saber cuántas columnas habrá. La cuestión de las tablas dinámicas es que requieren un cálculo, por lo que tendrás que hacer eso para que funcione. Espero que esto ayude.

 DECLARE @columns varchar(500) Select @columns = STUFF(( select distinct '],[' + cast(Name as varchar) from table_name as t1 order by '],[' + cast(Name as varchar) for XML path('') ), 1, 2, '') + ']' DECLARE @query varchar(max) SET @query = 'select * from table_name pivot ( count(Name) for Name in (' +@columns+ ') )as pvt' execute(@query)