2009-11-25 9 views
31

Come posso aggiungere un tag span da un codice? Esiste un HtmlControl equivalente? Attualmente lo sto facendo in questo modo. Sto costruendo le righe su un tavolo in un'implementazione placca.Aggiungi un tag span a livello di codice, non un controllo Label?

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

So che potrei usare new Label(), ma sto cercando di evitare un controllo server qui. Sono corretto nell'uso del LiteralControl in questo modo? Qualcuno ha qualche idea migliore su come farlo?

risposta

64

Con HtmlGenericControl è possibile creare un arco in modo dinamico come quello:

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

Seguendo l'idea che il nostro amico Canavar detto.

Guarda sotto lo spazio dei nomi System.Web.UI.HtmlControls e vedrai un gruppo di controlli HTML che sono stati mappati agli oggetti, se puoi usarli. HtmlGenericControl si adatta a tutti i controlli che non sono definiti in .NET e SPAN ne è un esempio.

Happy Coding.

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

O, in alternativa:

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

Non creerà un tag 'label'? –

0

uso LiteralControl. puoi aggiungere qualsiasi contenuto HTML che desideri. Non consiglio l'etichetta. (per ulteriori informazioni search -label vs literal-.)

1

So che sono in ritardo ma volevo fornire la mia soluzione per questo problema.

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