2009-11-25 7 views
31

Wie kann ich ein span Tag aus einem Code hinterher hinzufügen? Gibt es ein gleichwertiges HtmlControl? Ich mache es gerade so. Ich erweitere Zeilen in einer Tabelle in einer Itemplate-Implementierung.Programmgesteuertes Hinzufügen eines span-Tags, kein Label-Steuerelement?

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); 

Ich weiß, ich new Label() verwenden könnte, aber ich versuche, hier einen Server Kontrolle zu vermeiden. Stimmt die Verwendung des LiteralControl auf diese Weise? Hat jemand bessere Ideen, wie man das macht?

Antwort

64

Mit Htmlgenericcontrol können Sie eine Spanne dynamisch wie das schaffen:

var span = new HtmlGenericControl("span"); 
span.InnerHtml = "From<br/>Date"; 
span.Attributes["class"] = "nonExpense"; 
headerCell.Controls.Add(span); 
2
new HtmlGenericControl("span") 
1

Im Anschluss an die Vorstellung, dass unser Freund Canavar sagte.

Schauen Sie unter System.Web.UI.HtmlControls Namespace und Sie werden eine ganze Reihe von HTML-Steuerelementen, die Objekten zugeordnet wurden, sehen, wenn Sie diese verwenden können. HtmlGenericControl passt in alle Steuerelemente, die nicht in .NET definiert sind und SPAN ist ein Beispiel dafür.

Glückliche Kodierung.

4
Label span = new Label(); 
span.Text = "From<br/>Date"; 
span.CssClass = "nonExpense"; 
headerCell.Controls.Add(span); 

Oder alternativ:

Label span = new Label {Text = "From<br/>Date", CssClass = "nonExpense"}; 
headerCell.Controls.Add(span); 
+1

Wird das nicht ein Label-Label erstellen? –

0

Verwendung LiteralControl. Sie können den gewünschten HTML-Inhalt hinzufügen. Ich empfehle Label nicht. (für weitere Informationen suchen -label vs literal-)

1

Ich weiß, ich bin spät, aber ich wollte meine Lösung für dieses Problem bieten.

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