以编程方式添加span标记,而不是Label控件?

时间:2009-11-25 18:51:16

标签: c# asp.net html code-behind

如何从后面的代码中添加span标记?有没有等效的HtmlControl?我目前正在这样做。我正在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);

我知道我可以使用new Label(),但我在这里试图避免使用服务器控件。我是否正确使用LiteralControl这种方式?有没有人对如何做到更好?

6 个答案:

答案 0 :(得分:70)

使用HtmlGenericControl,您可以动态创建跨度:

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

答案 1 :(得分:4)

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

或者,或者:

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

答案 2 :(得分:2)

new HtmlGenericControl("span")

答案 3 :(得分:1)

遵循我们的朋友Canavar所说的想法。

在System.Web.UI.HtmlControls命名空间下查看,如果可以使用那些,您将看到已映射到对象的一大堆HTML控件。 HtmlGenericControl适用于任何未在.NET中定义的控件,SPAN就是这样的例子。

快乐编码。

答案 4 :(得分:1)

我知道我迟到了,但我想为这个问题提供解决方案。

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

答案 5 :(得分:0)

使用literalcontrol。你可以添加你想要的任何HTML内容。 我不推荐标签。 (有关更多信息,请搜索-label vs literal - 。)