将css分配给以编程方式创建的id

时间:2017-11-30 21:04:14

标签: c# css asp.net

目前,我从数据库中抓取未知数量的行并写入表。每个表格单元格都有一个来自数据库的唯一ID。

有没有办法可以访问这些ID来为它们应用某个CSS属性,即:

# spec_helper.rb RSpec.configure do |config| config.before(:each) do DatabaseCleaner.strategy = :transaction DatabaseCleaner.start end config.after(:each) do DatabaseCleaner.clean end end

对不起,还是新手 - 例如:

reader.GetString("id").Attributes.CssStyle.Add("background-color", "#e1e1e1");

1 个答案:

答案 0 :(得分:0)

您正在字符串q中构建HTML,因此您还必须在q中添加颜色定义。最简单的方法是这样的:

while (reader.Read())
{
  var id = reader.GetString("id");
  var name = reader.GetString("name");
  // define style using the ? ... : ... operator
  var style = name == "test" ? "background-color: #e1e1e1" : "";
  q += "<tr><td id='" + id + "' style='" + style +  "'>" + name + "</td></tr>\r\n";
}

请注意,构建长字符串的速度往往会变慢,因为每个新添加的内容都会重复复制到目前为止所有文本+新文本。

通常更有效的方法是使用StringBuilder:

var sb = new System.Text.StringBuilder();
while (reader.Read())
{
  var id = reader.GetString("id");
  var name = reader.GetString("name");
  var style = name == "test" ? "background-color: #e1e1e1" : "";
  sb.AppendLine("<tr><td id='" + id + "' style='" + style +  "'>" + name + "</td></tr>");
}
// use sb.ToString() for the result