如何动态创建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表。我怎么能这样做?
答案 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)
前端页面
<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;标记使行重复,你应该很好。
您的代码将更清晰,更好维护。