web-dev-qa-db-fra.com

Ajouter par programme une balise span, pas un contrôle Label?

Comment puis-je ajouter une balise span à partir d'un code derrière? Existe-t-il un HtmlControl équivalent? Je le fais actuellement de cette façon. Je crée des lignes sur une table dans une implémentation 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);

Je sais que je pourrais utiliser new Label(), mais j'essaie d'éviter un contrôle serveur ici. Ai-je raison d'utiliser le LiteralControl de cette façon? Quelqu'un a-t-il de meilleures idées sur la façon de procéder?

34
Hcabnettek

Avec HtmlGenericControl vous pouvez créer dynamiquement un span comme ça:

var span = new HtmlGenericControl("span");
span.InnerHtml = "From<br/>Date";
span.Attributes["class"] = "nonExpense";
headerCell.Controls.Add(span);
71
Canavar
Label span = new Label();
span.Text = "From<br/>Date";
span.CssClass = "nonExpense";
headerCell.Controls.Add(span);

Ou bien:

Label span = new Label {Text = "From<br/>Date", CssClass = "nonExpense"};
headerCell.Controls.Add(span);
4
birdus
new HtmlGenericControl("span")
2
Frank Schwieterman

Je sais que je suis en retard, mais je voulais apporter ma solution à ce problème.

public class HtmlSpan: HtmlGenericControl
{
  public HtmlSpan(): base("span") { }
}
1
Licht

Suite à l'idée que notre ami Canavar a dite.

Regardez sous System.Web.UI.HtmlControls namespace et vous verrez tout un tas de contrôles HTML qui ont été mappés à des objets, si vous pouvez les utiliser. HtmlGenericControl s'intègre à tous les contrôles qui ne sont pas définis dans .NET et SPAN en est un exemple.

Codage heureux.

1
Oakcool

utilisez literalcontrol. vous pouvez ajouter le contenu html que vous souhaitez. Je ne recommande pas d'étiquette. (pour plus d'informations, recherchez -label vs literal-.)

0
Kursat Turkay