我有以下代码来创建一个包含aspTable的字符串。
private void createTabel()
{
StringBuilder html = new StringBuilder();
html.Append("<asp:Table runat='server'>");
//Header Row erstellen.
html.Append("<asp:TableHeaderRow>");
foreach (DataColumn column in dataTable.Columns)
{
html.Append("<asp:TableHeaderCell>");
html.Append(column.ColumnName);
html.Append("</asp:TableHeaderCell>");
}
html.Append("</asp:TableHeaderRow>");
//Erstellen der Rows.
foreach (DataRow row in dataTable.Rows)
{
html.Append("<asp:TableRow>");
foreach (DataColumn column in dataTable.Columns)
{
html.Append("<asp:TableCell>");
html.Append(row[column.ColumnName]);
html.Append("</asp:TableCell>");
}
html.Append("</asp:TableRow>");
}
html.Append("</asp:Table>");
PlaceHolder1.Controls.Add(new Literal { Text = html.ToString() });
}
此代码工作正常,它会创建一个应显示asp.net表的字符串。
如果我手动将其粘贴到HTML文档中,则一切都会正常显示。但是,如果我替换了我的PlaceHolder
,则只显示包含行内容的大string
。
我希望你的家伙可以给我一些提示来解决我的问题。
答案 0 :(得分:1)
请改用:
private void createTabel()
{
StringBuilder html = new StringBuilder();
html.Append("<table>");
//Header Row erstellen.
html.Append("<tr>");
foreach (DataColumn column in dataTable.Columns)
{
html.Append("<th>");
html.Append(column.ColumnName);
html.Append("</th>");
}
html.Append("</tr>");
//Erstellen der Rows.
foreach (DataRow row in dataTable.Rows)
{
html.Append("<tr>");
foreach (DataColumn column in dataTable.Columns)
{
html.Append("<td>");
html.Append(row[column.ColumnName]);
html.Append("</td>");
}
html.Append("</tr>");
}
html.Append("</table>");
PlaceHolder1.Controls.Add(new Literal { Text = html.ToString() });
}
或者,您可以使用GridView并将dataTable绑定到GridView作为DataSource。