2010-01-22 5 views
9

Sto provando a creare un menu con il seguente codice. Ma non riesco a capire come far apparire ciascun LinkButton su linee separate.Come posso aggiungere un'interruzione di linea o html all'interno di un pannello?

MenuPanel.Controls.Clear(); 
foreach (FormList f in forms) 
{ 
    if (f.IsActive == "y") 
    { 
    FormUserControl fc = (FormUserControl)LoadControl(f.StartControl); 
    LinkButton lb = new LinkButton(); 
    lb.Text = fc.Title; 
    MenuPanel.Controls.Add(lb); 
    // I want some sort of line break here 
    } 
} 

risposta

16

Utilizzare la classe LiteralControl per inserire un'interruzione di linea ...

MenuPanel.Controls.Add(new LiteralControl("<br />")); 

Oppure utilizzare i CSS per rendere il vostro link elementi a livello di blocco ...

#menu a { display: block; } 
+0

ho dovuto usare un LiteralControl, ma essenzialmente questo funzionava benissimo. – ProgrammingPope

+0

+1 per la coppia di buon risposte: ricorda che devi separare i tuoi link con più di uno spazio bianco per conformarsi alle specifiche WCAG (cioè il primo suggerimento è migliore sotto questo aspetto rispetto al secondo) – Fenton

+0

Buona risposta, di solito creo numerosi di Letterale con il testo di
perché non può essere riutilizzato Il tuo suggerimento ripulire un po il mio codice – teapeng

1

Si potrebbe fare this:

HtmlGenericControl div = new HtmlGenericControl("div"); 
div.Text = "&nbsp;"; 
MenuPanel.Controls.Add(div); 
2

So che questa risposta è già stata accettata, ma vorrei suggerire un'opzione diversa. Se si desidera un elenco verticale di elementi, potrebbe valere la pena di utilizzare un elemento ul o ol. Ciò significa che non è necessario utilizzare il tag del brutto temuto o qualsiasi hack per ottenere ciò di cui hai bisogno.

+0

+1 per l'utilizzo del markup per il motivo per cui è stato progettato –

2

FYI: Se è già stato aggiunto il pannello di controllo in aspx (design-view) e se si desidera utilizzare la risposta sopra accettata nel file .cs (code-behind)., Quindi si eseguirà in errori di tipo. Quindi in tal caso, potresti usare in questo modo. Si prega di notare il piccolo "" nuovo ".

Panel1.Controls.Add(new LiteralControl("<br>")); 
0

nel pannello di controllo u possibile utilizzare il controllo etichetta, che hanno "valore d'proprietà text

Label lb1 = new Label(); 
lb1.Text = "<br>"; 

Panel1.Controls.Add(lb1);  
Problemi correlati