Web Analytics

HtmlTableHelper

⭐ 42 stars Spanish by mini-software

NuGet


version version version version version version version version version version version version version version version version version


Características

Instalación

Puedes instalar el paquete desde NuGet utilizando el Administrador de Paquetes de Visual Studio o la interfaz de NuGet:

PM> install-package HtmlTableHelper

o desde la línea de comandos dotnet:

dotnet add package HtmlTableHelper

Demostración Fiddle:

Comenzar

##### Ejemplo de List/Array/Set/Enumrable de tipo sin Clave/Valor ``C# using HtmlTableHelper; .. var sourceData = new[] { new { Name = "ITWeiHan", Age = "25",Gender = "M" } }; var tablehtml = sourceData.ToHtmlTable(); /* Resultado:

NameAgeGender
ITWeiHan25M
*/

##### Ejemplo Dapper
C# using (var cn = "Your Connection") { var sourceData = cn.Query(@"select 'ITWeiHan' Name,25 Age,'M' Gender"); var tablehtml = sourceData.ToHtmlTable(); }

##### Ejemplo Dictionary 
C# var sourceData = new[] {new Dictionary (){{"Name" , "ITWeiHan" },{"Age",25},{"Gender","M"}}}; var tablehtml = sourceData.ToHtmlTable();

Atributos Personalizados de Table/TR/TD/TH (Tipo Dinámico)

C# var data = /List/Array/Set/Enumrable../; var html = data.ToHtmlTable( tableAttributes: new { @class = "SomeClass"} //este es tipo dinámico, soporta cualquier atributo ,trAttributes: new { ID = "SomeID" },tdAttributes: new { width = "120 px" },thAttributes: new { @class = "dark-theme" } ); /* Resultado:
..
..
*/

##### Anotación de Atributos

###### 1. Display :

C# public class ModelClassWithDisplayAttr { [TableColumn(DisplayName = "Columna1")] //La propiedad MyProperty1 renderizará el innertext de thead-td: "Columna1" public string MyProperty1 { get; set; } [TableColumn(DisplayName = "Columna2")] //La propiedad MyProperty2 renderizará el innertext de thead-td: "Columna2" public string MyProperty2 { get; set; } }

###### 2. Omitir : 
C# public class ModelClassWithSkipAttr { [TableColumn( Skip = true)] public string MyProperty1 { get; set; } //MyProperty1 no renderizará html public string MyProperty2 { get; set; } }

##### HTMLTableBuilder

###### HtmlCaption

C# var soucreData = new []{ new {MyProperty1="test",MyProperty2=123} }; var html = soucreData.CreateBuilder() .SetCaption("Este es el título", new { id = "CaptionId" }) .ToHtmlTable(); //Resultado :
Este es el título
MyProperty1MyProperty2
test123

##### HTMLTableSetting

Codificación InnerHtml configurable (Se recomienda no hacerlo sin una razón específica, debido a ataques XSS)

C# var sourceData = new[] { new { Name = "ITWeiHan" } };

//Codificación predeterminada var encodinghtml = sourceData.ToHtmlTable(); //Resultado:

..<b>ITWeiHan</b>..

var htmltablesetting = new HTMLTableSetting() { IsHtmlEncodeMode = false }; var notEncodinghtml = sourceData.ToHtmlTable(HTMLTableSetting: htmltablesetting); //Resultado:

..ITWeiHan..

Extensión

ASP.NET Core MVC: Crear un IHtmlHelperExtension.cs
C# using System.Collections.Generic; using HtmlTableHelper; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.AspNetCore.Html;

public static class IHtmlHelperExtension { public static HtmlString ToHtmlTable(this IHtmlHelper htmlHelper, IEnumerable enums , object tableAttributes = null, object trAttributes = null, object tdAttributes = null , HtmlTableSetting HTMLTableSetting = null) { var html = enums.ToHtmlTable(tableAttributes, trAttributes, tdAttributes, HTMLTableSetting); return new HtmlString(html); }

public static HtmlString ToHtmlTable(this IHtmlHelper htmlHelper, System.Data.DataTable datatable , object tableAttributes = null, object trAttributes = null, object tdAttributes = null , HtmlTableSetting HTMLTableSetting = null) { var html = datatable.ToHtmlTable(tableAttributes, trAttributes, tdAttributes, HTMLTableSetting); return new HtmlString(html); } }


razor.cshtml 
C# @Html.ToHtmlTable(new[] { new { Name = "ITWeiHan", Age = "25", Gender = "M" } }) /* Resultado:
NameAgeGender
ITWeiHan25M
*/

ASP.NET MVC 5:   
Crear un HtmlHelperExtension.cs
C# using System.Collections.Generic; using HtmlTableHelper; using System.Web; using System.Web.Mvc;

public static class HtmlHelperExtension { public static HtmlString ToHtmlTable(this HtmlHelper htmlHelper, IEnumerable enums , object tableAttributes = null, object trAttributes = null, object tdAttributes = null , HtmlTableSetting HTMLTableSetting = null) {

        var html = enums.ToHtmlTable(tableAttributes, trAttributes, tdAttributes, HTMLTableSetting);
        return new HtmlString(html);
    }

public static HtmlString ToHtmlTable(this HtmlHelper htmlHelper, System.Data.DataTable datatable , object tableAttributes = null, object trAttributes = null, object tdAttributes = null , HtmlTableSetting HTMLTableSetting = null) { var html = datatable.ToHtmlTable(tableAttributes, trAttributes, tdAttributes, HTMLTableSetting); return new HtmlString(html); } }

Demo

Demo de ASP.NET MVC 5 JQuery DataTable:
using HtmlTableHelper;
//..
public class HomeController : Controller
{
    public ActionResult Index()
    {
        var datas = new[] { new { Name = "ITWeiHan", Age = "25",Gender = "M" } };
        ViewBag.Table = datas.ToHtmlTable();
        return View();
    }
}

@{
    Layout = null;
}

AspNetMvcDemo

@Html.Raw(ViewBag.Table)

Demo de ASP.NET Core:

public class Startup
{
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.Run(async (context) =>
        {
            var sourceData = new[] { new { Name = "ITWeiHan", Age = "25",Gender = "M" } };
            var tablehtml = sourceData.ToHtmlTable();
            await context.Response.WriteAsync(tablehtml);
        });
    }
}

--- Tranlated By Open Ai Tx | Last indexed: 2025-06-30 ---