2010-01-12 34 views
6

Tôi đang làm việc với C# ASP .Net, HtmlTable, HtmlTableRow, HtmlTableCell để tạo một bảng.HtmlTable, HtmlTableRow, HtmlTableCell - tạo thead, tbody và tfoot

ví dụ ... tôi cần phải có một số tế bào được bao bọc bởi <tfoot> and </tfoot>

tôi đã cố gắng để làm điều đó với HtmlGenericControl để bọc các tế bào này với các từ khóa "tfoot" vào HtmlTable nhưng nó đã không làm việc .

tôi biết rằng HtmlTableCell có thể có trong hàm tạo "th" cho "thead" và "td" cho tbody. nhưng tôi cần chúng được bọc bằng "thead" và "tbody" thực tế.

Bất kỳ đề xuất nào ??

Trả lời

20

Dưới đây là cách thực hiện (bên dưới). Tất cả các lớp được sử dụng đều nằm trong System.Web.UI.HtmlControls.

TableRow row = new TableHeaderRow(); 
     TableRow row2 = new TableRow(); 
     TableRow row3 = new TableFooterRow(); 
     Table table = new Table(); 

     var cell1 = new TableCell(); 
     row.TableSection = TableRowSection.TableHeader; 
     cell1.Text = "Header"; 
     row.Cells.Add(cell1); 

     var cell2 = new TableCell(); 
     cell2.Text = "Contents"; 
     row2.Cells.Add(cell2); 

     var cell3 = new TableCell(); 
     cell3.Text = "Footer"; 
     row3.Cells.Add(cell3); 
     row3.TableSection = TableRowSection.TableFooter; 


     table.Rows.Add(row); 
     table.Rows.Add(row2); 
     table.Rows.Add(row3); 
     this.Controls.Add(table); 
+0

rất rất tốt. nó giúp tôi. nhưng chúng chỉ dành cho tiêu đề ... không có TableFooterCell ... – Jack

+1

Không cần thiết. Bạn chỉ cần làm cho giá trị TableSection của hàng 'TableFooter'. Đây là những lớp mà Gridview sử dụng. –

+1

Hãy nhớ rằng thứ tự là thead ?, tfoot ?, tbody +. Chân trang không đến cuối cùng. – brianary

4

Không đẹp, tôi sợ. Đây từ http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmltable%28VS.80%29.aspx

Note

Một mô hình bảng phức tạp không được hỗ trợ. Bạn không thể có điều khiển HtmlTable với các phụ đề < chú thích>, < col>, < colgroup>, < tbody>, < thead> hoặc < tfoot>. Các yếu tố này được xóa mà không cần cảnh báo và không xuất hiện trong HTML đầu ra. Một ngoại lệ sẽ được ném nếu bạn cố gắng lập trình thêm các phần tử mô hình bảng này vào bộ sưu tập Control.Controls của điều khiển HtmlTable.

html trường cũ là cách, sau đó.

+0

thank you very much! – Jack

0

graphicdivine có phản hồi đúng, chức năng đó không có sẵn để xây dựng bảng lập trình sử dụng htmlcontrols. Bạn có thể xây dựng nó trong các đánh dấu với các thẻ html và thêm máy chủ runat khi cần thiết hoặc bạn xây dựng nó một cách lập trình bằng cách sử dụng các webcontrols. như Table, TableRow vv ...

1

Bạn có thể sử dụng

HtmlGenericControl table = new HtmlGenericControl("table"); 

thay vì

HtmlTable table = new HtmlTable(); 
Các vấn đề liên quan