0

这是一个已知问题/问题,无法在动态(代码隐藏)生成的 Html 标记上使用硬编码(标准)CSS 样式设置?

在我目前正在处理的项目中,我正在生成 html 标记,针对说未排序列表项的每个元素(...源是数据库查询结果)

出于说明目的,我只会画出这个想法,我认为它已经完成了很多......

collection = some sql query results returned  as `List<string>` type

counter  = 0

foreach item in collection 
someHtmlString = String.Format("<li  id='{0}_{1}'> {0}</li> ",  item, counter)
counter ++

因此,对于进入 for/foreach 循环的每个项目,我正在制造一组特定的 css 和 html 属性,通常它被划分为进入循环的列表项的子集,就像在这种情况下通常为每个元素分配一个类,所以碰巧我有一堆属性,随着需要更具体的设计甚至更多......其他属性作为javascript事件但主要是样式,

说 10 x css 属性,设置说 3 或 4 种类型的设置,这意味着在我的代码中看到足迹不再那么有趣了

在我现在可以考虑从文件中读取 css 样式设置之前的一步(使用System.IO), 我确实尝试通过它们所属的位置在样式 .css 文件中应用这些属性,但正如我注意到的那样,这些样式与硬编码的 html 标记相反,无法将属性应用于从代码/文件生成的代码。style.css

所以我想知道,如果你想避免后面代码中的那一堆行,除了从一个单独的文件中读取它(比如我能想到的 coma sepertaed),然后解析它,还有哪些选择:

说一个txtfile - 每行都是 P ​​ropertyvalue

就像在字典中一样,因此您可以将其直接从文件中读取/加载到代码中,

dictionary<string, string> StyleDict = new dictionary<string, string>();

styleDict.add(styleProperty, some value);
 ...etc' (10 lines like this, x 3 or 4 times , as each could be a css class  i could use)

我想我已经没有想法了,将样式应用于生成的 HtmlMarkup 的正确方法是什么?(是我做错了什么还是已知问题?)

4

1 回答 1

1

正如 Zack T. 建议的那样,您可以使用他展示的方法应用样式:

someHtmlString = String.Format("<li id='{0}_{1}' class='listItem'>{0}</li>", item, counter);

现在您抱怨这些样式不适用。为此,您需要检查定义是否呈现在HTMLStyle标记内的标记下。Head或者外部CSS文件的链接应该放在您的Head标签内。下面的示例代码片段

<html>
<head>
<style type="text/css">
    .listItem
    {
        background-color:Red;
    }
</style>
</head>
<body></body>
</html>
于 2012-12-25T05:01:49.400 回答