¿Agregar programáticamente una etiqueta span, no un control de etiqueta?


¿Cómo puedo agregar una etiqueta span desde un código detrás? ¿Existe un HtmlControl equivalente? Actualmente lo estoy haciendo de esta manera. Estoy construyendo filas a una tabla en una implementación de Itemplate.

var headerCell = new TableHeaderCell { Width = Unit.Percentage(16)};
var span = new LiteralControl("<span class='nonExpense'>From<br/>Date</span>");
headerCell.Controls.Add(span);
headerRow.Cells.Add(headerCell);

Sé que podría usar new Label(), pero estoy tratando de evitar un control de servidor aquí. ¿Estoy en lo correcto al usar el LiteralControl de esta manera? ¿Alguien tiene mejores ideas de cómo hacer esto?

Author: Drew Gaynor, 2009-11-25

6 answers

Con HtmlGenericControl puedes crear un span dinámicamente así:

var span = new HtmlGenericControl("span");
span.InnerHtml = "From<br/>Date";
span.Attributes["class"] = "nonExpense";
headerCell.Controls.Add(span);
 68
Author: Canavar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-25 19:05:13
Label span = new Label();
span.Text = "From<br/>Date";
span.CssClass = "nonExpense";
headerCell.Controls.Add(span);

O, alternativamente:

Label span = new Label {Text = "From<br/>Date", CssClass = "nonExpense"};
headerCell.Controls.Add(span);
 4
Author: birdus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-06 19:01:57
new HtmlGenericControl("span")
 2
Author: Frank Schwieterman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-19 06:21:20

Siguiendo la idea que dijo nuestro amigo Canavar.

Busque en Sistema.Web.UI.HtmlControls namespace y verá un montón de controles HTML que se han asignado a objetos, si puede usarlos. HtmlGenericControl se adapta a cualquier control que no esté definido en. NET y SPAN es un ejemplo de ello.

Feliz Codificación.

 1
Author: Oakcool,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-25 19:32:00

Sé que llego tarde, pero quería proporcionar mi solución para este problema.

public class HtmlSpan: HtmlGenericControl
{
  public HtmlSpan(): base("span") { }
}
 1
Author: Licht,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-11 18:53:09

Utilice literalcontrol. puede agregar cualquier contenido html que desee. No recomiendo etiqueta. (para más información buscar-etiqueta vs literal-.)

 0
Author: Kursat Turkay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-08 13:59:52