2009-11-25 55 views
31

如何在代码后面添加span标记?有没有相当的HtmlControl?我目前正在这样做。我正在构建一个Itemplate实现中的表的行。以编程方式添加span标签,而不是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); 

我知道我可以使用new Label(),但我尽量避免在此服务器控件。我是否正确使用LiteralControl这种方式?有没有人有更好的想法如何做到这一点?

回答

64

随着HtmlGenericControl您可以动态地创建一个跨度这样的:

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

继的想法,我们的朋友Canavar说。

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

快乐编码。

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

这不会创建一个'label'标签吗? –

0

使用literalcontrol。你可以添加你想要的任何html内容。 我不推荐标签。 (更多信息请查阅-label vs literal-。)

1

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

public class HtmlSpan: HtmlGenericControl 
{ 
    public HtmlSpan(): base("span") { } 
} 
相关问题