如何在Panel中添加换行符或html?

时间:2010-01-22 15:34:27

标签: c# asp.net .net function foreach

我正在尝试使用以下代码创建菜单。但我无法弄清楚如何让每个LinkBut​​ton出现在单独的行上。

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
  }
}

5 个答案:

答案 0 :(得分:17)

使用LiteralControl类插入换行符...

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

或使用CSS制作链接块级元素......

#menu a { display: block; }

答案 1 :(得分:2)

我知道这个答案已被接受,但我想提出一个不同的选择。如果你想要一个垂直的元素列表,那么使用ul或ol元素可能是值得的。这意味着您不必使用可怕的标签或任何黑客来获得您需要的东西。

答案 2 :(得分:2)

仅供参考:如果您已经在aspx(设计视图)中添加了面板控件,并且想要在.cs文件中使用上面接受的答案(代码隐藏)。,那么你将遇到类型错误。那么在这种情况下,你可以用这种方式。请注意小型“新”。

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

答案 3 :(得分:1)

你可以这样做:

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

答案 4 :(得分:0)

在面板控件中的

你可以使用具有“文本属性值

”的标签控件
Label lb1 = new Label();
lb1.Text = "<br>";

Panel1.Controls.Add(lb1);