如何动态创建HTML表?

时间:2016-03-09 12:37:48

标签: c# html asp.net

如何动态创建HTML表或ASP表?我尝试使用下面的代码,但它不起作用。

Table tb = new Table();
tb.ID="tbl"+TBname;
TableRow rowNew = new TableRow();
tb.Controls.Add(rowNew);
for (int j = 0; j < cols; j++)
{
    TableCell cellNew = new TableCell();
    Label lblNew = new Label();
    rowNew.Controls.Add(cellNew);
}

我想使用循环创建多个HTML表。我怎么能这样做?

4 个答案:

答案 0 :(得分:1)

使用文字控制说

在设计页面中:

     <asp:Literal id="ltrlctrl1" runat=server />

在代码背后:

     ltrlctrl1.Text = "<table><tr><td>your HTML table contents</td></tr></table>";

请参阅:How to: Add Literal Web Server Controls to a Web Forms Page了解其优势。

答案 1 :(得分:0)

如果你想创建N号,请尝试这个。动态HTML表中的行

前端页面

<asp:Literal id="container" runat=server />

代码

string Tablecontent='';
int rowCount=10 //change value as per your need
for(int i=1;i<=rowCount;i++){
Tablecontent+="<tr><td>your HTML table contents</td></tr>";
}

container.Text="<table>"+Tablecontent+"</table>";

答案 2 :(得分:0)

根据我上面的评论(您说帮助您解决问题),您没有将Table对象添加到页面中。将以下内容添加到您的代码中:

Controls.Add(tb);

要创建多个HTML表,只需将示例代码包装在for循环中,如下所示:

int tableCount = 2; // Or however many tables you want.
for (int tableIndex = 0; tableIndex < tableCount; tableIndex++)
{
    Table tb = new Table();
    tb.ID = "tbl" + TBname;
    TableRow rowNew = new TableRow();
    tb.Controls.Add(rowNew);
    for (int j = 0; j < cols; j++)
    {
        TableCell cellNew = new TableCell();
        Label lblNew = new Label();
        rowNew.Controls.Add(cellNew);
    }
}

答案 3 :(得分:0)

您应该避免尝试使用字符串(BAD)或使用ASP.NET表格控件(BAD Microsoft)在C#中创建HTML代码

更好的解决方案是将HTML键入.aspx文件,然后根据需要将值放入其中。加上&lt;%foreach(...){%&gt;标记使行重复,你应该很好。

您的代码将更清晰,更好维护。