2009-11-25 8 views
31

Tôi làm cách nào để thêm thẻ span từ mã phía sau? Có một HtmlControl tương đương? Tôi hiện đang làm theo cách này. Tôi đang xây dựng ra hàng để một bảng trong một thực hiện Itemplate.Lập trình thêm thẻ span, không phải là điều khiển Nhãn?

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

Tôi biết tôi có thể sử dụng new Label(), nhưng tôi đang cố tránh điều khiển máy chủ ở đây. Tôi có đúng khi sử dụng số LiteralControl theo cách này không? Có ai có bất kỳ ý tưởng tốt hơn về làm thế nào để làm điều này?

Trả lời

64

Với HtmlGenericControl bạn có thể tạo một khoảng động như thế:

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

Tiếp nối ý tưởng rằng người bạn của chúng tôi Canavar nói.

Nhìn vào không gian tên System.Web.UI.HtmlControls và bạn sẽ thấy toàn bộ các điều khiển HTML đã được ánh xạ tới các đối tượng, nếu bạn có thể sử dụng chúng. HtmlGenericControl phù hợp với bất kỳ điều khiển nào không được xác định trong .NET và SPAN là một ví dụ về điều đó.

Mã hóa hạnh phúc.

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

Hoặc cách khác:

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

Việc này có tạo thẻ 'label' không? –

0

sử dụng LiteralControl. bạn có thể thêm bất kỳ nội dung html nào bạn muốn. Tôi không khuyên bạn nên dán nhãn. (để biết thêm thông tin tìm kiếm-nhãn vs literal-.)

1

Tôi biết tôi đã trễ nhưng tôi muốn cung cấp giải pháp cho vấn đề này.

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