我想为行提供动态创建的替代颜色。以下是 aspx.cs 页面中的表格结构,我正在使用
StringBuilder html = new StringBuilder();
foreach (DataRow row in dsDashboardDetails.Tables[0].Rows)
{
html.Append("<tr style='color: Black'>");
foreach (DataColumn column in dsDashboardDetails.Tables[0].Columns)
{
html.Append("<td>");
html.Append(row[column.ColumnName]);
html.Append("</td>");
}
html.Append("</tr>");
}
//Table end.
html.Append("</table>");
答案 0 :(得分:1)
为什么不使用css:
<style type="text/css">
tr:nth-child(odd) { background-color:#eee; }
</style>
答案 1 :(得分:0)
您是否尝试过设置计数器并在循环时递增计数器?
然后,每次输出一行并且计数器为奇数时,您可以有条件地为该行输出不同的样式。
最好在输出时将样式分隔为CSS和备用类名,这样,当您想要更改网站的样式时,您不必修改代码。
答案 2 :(得分:0)
这是一种适用于旧浏览器的安全方式。
StringBuilder html = new StringBuilder();
var rowCount = 0;
foreach (DataRow row in dsDashboardDetails.Tables[0].Rows)
{
var className = rowCount++ % 2 == 0 ? "even" : "odd"; //check if it is an odd or even rowCount
html.Append("<tr style='color: Black' class='"+className+"'>");
foreach (DataColumn column in dsDashboardDetails.Tables[0].Columns)
{
html.Append("<td>");
html.Append(row[column.ColumnName]);
html.Append("</td>");
}
html.Append("</tr>");
}
//Table end.
html.Append("</table>");
为行添加此CSS
tr.odd{
background-color: #999;
}
tr.even{
background-color: #ccc;
}
答案 3 :(得分:0)
将布局(html)与后端代码混合起来真的很糟糕。我建议你使用DataRepeater(或Razor取决于你的项目)和CSS一起解决你的问题;
- 首先在StringBuilder btw中添加<table>
;
CSS:
table tbody tr:nth-child(odd) {
background-color: #eee;
}
但是如果你想坚持这个概念,你可以使用&#34;切换&#34;布尔值,如下:
bool background=false;
foreach (DataColumn column in dsDashboardDetails.Tables[0].Columns)
{
html.Append("<td>");
if (background) { // add color }
background = !background;
html.Append(row[column.ColumnName]);
html.Append("</td>");
}
答案 4 :(得分:0)
您可以使用css
,但如果您正在寻找纯C#
,请使用计数器:
StringBuilder html = new StringBuilder();
var rowIndex = 0;
foreach (DataRow row in dsDashboardDetails.Tables[0].Rows) {
html.AppendFormat("<tr style='color: {0}'>",
rowIndex % 2 == 0 ? "Black" : "Red"); // Red or anything you want
foreach (DataColumn column in dsDashboardDetails.Tables[0].Columns) {
html.Append("<td>");
html.Append(row[column.ColumnName]);
html.Append("</td>");
}
html.Append("</tr>");
}
//Table end.
html.Append("</table>");