elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Tabla html con net
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tabla html con net  (Leído 1,833 veces)
Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Tabla html con net
« en: 7 Abril 2016, 14:38 pm »

Hola

¿Hay alguna clase o función en Net para crear tablas Html?. Mi idea es crear una tabla HTML a partir de datos de un datagridview o ListView.

Lo que yo he hecho por ahora es algo como lo siguiente:

Código
  1.  
  2.        Dim builder As New System.Text.StringBuilder
  3.        With builder
  4.            .AppendLine("<table border=""1"" style=""border-collapse: collapse;"">")
  5.            .AppendLine("<caption>Leyenda</caption>")
  6.            .AppendLine("<tbody>")
  7.            .AppendLine("<tr>")
  8.            .AppendLine(String.Format("<td>{0}</td>", "Celda1"))
  9.            .AppendLine(String.Format("<td>{0}</td>", "Celda2"))
  10.            .AppendLine("</tr>")
  11.            .AppendLine("<tr>")
  12.            .AppendLine(String.Format("<td>{0}</td>", "Celda3"))
  13.            .AppendLine(String.Format("<td>{0}</td>", "Celda4"))
  14.            .AppendLine("</tr>")
  15.            .AppendLine("</tbody>")
  16.            .AppendLine("</table>")
  17.        End With
  18.  


Pero es muy tedioso



He encontrado algo que puede ser lo que busco.

HtmlTable Class

del system.web.dll


Código
  1. Imports System.Web.UI.HtmlControls
  2.  
  3. Public Class Form1
  4.  
  5.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.  
  7.        Dim i As Integer
  8.        Dim j As Integer
  9.        Dim Table1 As HtmlTable
  10.        Dim row As HtmlTableRow
  11.        Dim cell As HtmlTableCell
  12.  
  13.       '//...
  14.    End Sub
  15. End Class


« Última modificación: 7 Abril 2016, 16:13 pm por Lekim » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Tabla html con net
« Respuesta #1 en: 7 Abril 2016, 16:14 pm »

¿Para convertir una colección genérica a tabla html?, no, y desconozco el motivo, quizás pueda ser para evitar implementar funcionalidades basadas en asunciones de objetos representables en texto, pero esta ausencia de funcionalidad en la librería de clases de .NetFx nos presenta lugar a que existan cientos de soluciones home-made (que ya podrías haber buscado...) que hacen esas asunciones y puedes encontrar en Google, como por ejemplo esta:



Para crear una tabla html, desde Cero, si, puedes hacerlo.

En ASP.Net se puede utilizar el control Htmltable para crear y renderizar una tabla Html estática:


En WinForms puedes aprovechar ese control para poder crear una tabla Html en tiempo de ejecución, de forma guiada, mediante tipos/classes que representan la tabla, las filas y sus celdas.

Te muestro un ejemplo (en el enlace de arriba tienes otro ejemplo, basado en ASP.Net):

Código
  1. Dim html As String
  2.  
  3. Using t As New HtmlTable,
  4.     tr As New HtmlTableRow,
  5.     td As New HtmlTableCell,
  6.     sw As New StringWriter
  7.  
  8.    With t
  9.        .BgColor = ColorTranslator.ToHtml(Color.Black)
  10.        .Border = 2
  11.        .BorderColor = ColorTranslator.ToHtml(Color.Gold)
  12.        .Height = "300px"
  13.        .Width = "200px"
  14.    End With
  15.  
  16.    With td
  17.        .BgColor = ColorTranslator.ToHtml(Color.DarkGray)
  18.        .BorderColor = ColorTranslator.ToHtml(Color.LightGray)
  19.        .Height = "10px"
  20.        .InnerText = "Hello World!"
  21.    End With
  22.  
  23.    tr.Cells.Add(td)
  24.    t.Rows.Add(tr)
  25.  
  26.    t.RenderControl(New HtmlTextWriter(sw))
  27.    html = sw.ToString()
  28.  
  29.    Console.WriteLine(html)
  30.  
  31. End Using

Resultado de ejecución:
Código
  1. <table bgcolor="Black" border="2" bordercolor="Gold" height="300px" width="200px">
  2. <tr>
  3. <td bgcolor="DarkGray" bordercolor="LightGrey" height="10px">Hello World!</td>
  4. </tr>
  5. </table>

Sabiendo esto, puedes crear un método de uso genérico o extensión de método, solo tienes que iterar los elementos de "X" colección para ir construyendo la tabla html de forma automatizada, aunque en realidad también puedes hacer lo mismo que acabo de mencionar pero construyendo el string por completo con la class StringBuilder (como en la url de StackOverflow), cosa que yo no recomiendo, pues a la larga es mucho más rentable o beneficioso y llevadero el utilizar tipos que representan lo que quieres llevar a cabo (HtmlTable, HtmlTableRow, etc), aunque pueda resultarte igual de tedioso o no.

Saludos


« Última modificación: 7 Abril 2016, 16:35 pm por Eleкtro » En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: Tabla html con net
« Respuesta #2 en: 7 Abril 2016, 16:29 pm »

Gracias Elektro  ;-)

Ahora mismo estaba buscando ejemplos en g'u'gle. Me has ahorrado el trabajo, o gran parte.  


s2s



(Aunque aquí podríamos tener el problema que ya comentamos... con system.web.dll)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Organizar Tabla HTML
PHP
^Tifa^ 4 3,385 Último mensaje 26 Abril 2009, 22:44 pm
por дٳŦ٭
extraer html (tabla) con php
PHP
schumacher 2 4,157 Último mensaje 25 Mayo 2012, 07:37 am
por engel lex
python y tabla HTML
Scripting
Alfai 3 4,459 Último mensaje 17 Agosto 2009, 00:04 am
por Alfai
Duda sobre insersion a tabla html desde tabla sql
Bases de Datos
mokoMonster 2 3,928 Último mensaje 20 Febrero 2010, 01:20 am
por Shell Root
Problema tabla en html
Desarrollo Web
AndreaMark 0 1,764 Último mensaje 24 Noviembre 2016, 13:40 pm
por AndreaMark
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines