Basta con establecer la propiedad BoundColumn.HtmlEncode
false:
<asp:BoundField DataField="HtmlLink" HtmlEncode="false" />
Me temo que no hay una manera fácil de desactivar la codificación HTML de los contenidos en un GridView
con AutoGenerateColumns
= true
. Sin embargo, no puedo pensar en dos soluciones que puedan resolver el problema que se enfrentan:
Opción 1: heredan la clase GridView
, reemplazar el método Render
, bucle a través de todas las células, descifrar su contenido, antes de ejecutar el método de base :
for (int i = 0; i < Rows.Count; i++)
{
for (int j = 0; j < Rows[i].Cells.Count; j++)
{
string encoded = Rows[i].Cells[j].Text;
Rows[i].Cells[j].Text = Context.Server.HtmlDecode(encoded);
}
}
Opción 2: en una clase que hereda de GridView
o en el Page
o Control
usarlo, hacer su propia inspección de la DataTable
y crear una explícita BoundColumn
para cada columna:
foreach (DataColumn column in dataTable.Columns)
{
GridViewColumn boundColumn = new BoundColumn
{
DataSource = column.ColumnName,
HeaderText = column.ColumnName,
HtmlEncode = false
};
gridView.Columns.Add(boundColumn);
}