如何根据数据库中的信息更改表内容的背景颜色

时间:2014-09-23 18:06:46

标签: c# html css asp.net database

我有一个基于数据库中的信息生成的表。如何动态更改背景,假设重复== 1然后<td>repeat</td>应该有红色背景。

while (reader.Read()) {
            int event_id = reader.GetInt32(0);
            string text = reader.GetString(1);
            DateTime eventStart = reader.GetDateTime(2);
            DateTime eventEnd = reader.GetDateTime(3);
            int repeat = reader.GetInt32(4);
            string Days = reader.GetString(5);
            //string Title = reader.GetString(2);
            htmlStr += "<tr><td BGCOLOR='#ffff00'>" + event_id + "</td><td>" + eventStart + 
                  "</td><td>" + eventEnd + "</td><td>" + repeat + "</td><td>" + Days + 
                  "</td></tr>";      
}

2 个答案:

答案 0 :(得分:0)

最好的方法是使用gridview并对读取器进行数据绑定,然后在数据绑定事件管理代码中将css应用于特定元素。

将此链接用于gridview databind - http://www.aspsnippets.com/Articles/How-to-bind-GridView-with-DataReader-in-ASPNet-using-C-and-VBNet.aspx

将此链接用于rowdatabound - http://www.dotnetgallery.com/kb/resource17-RowDatabound-event-tips-and-tricks-in-Gridview-control.aspx

答案 1 :(得分:0)

如果您希望坚持使用字符串创建表格,可以使用一些辅助方法,如

private string SwitchColor(string oldColor)
{
    string color = "#ffff00";
    if (oldColor == color)
        color = "#ff0000";
    return color;
}

然后在黄色和红色之间切换,例如,使用像这样的变量

 string color = "#ffff00";
 while (reader.Read()) {
        color = SwitchColor(color);
        htmlStr += "<tr><td BGCOLOR='" + color + "'>".....
        }

您还可以在列上添加类名,而不是添加bgcolor属性,然后使用css处理它。