目前,我从数据库中抓取未知数量的行并写入表。每个表格单元格都有一个来自数据库的唯一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");
答案 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