2012-12-24 29 views
0

它是一个已知问题,无法在动态生成的Html标记中使用硬编码(标准)CSS样式设置?试图在动态生成的html标记上应用样式属性

在我目前的工作对我生成的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 ++ 

所以进入到了/ foreach循环我制造一组特定的CSS和HTML属性的每一个项目,通常它分为进入循环的列表项的子集与您在本场景中通常一样签订类每一个元素,所以它发生,我有一个属性一堆,成长,如需要更具体的设计,甚至一些更..其他属性,如JavaScript事件,但大多风格,

说10×CSS属性,设置说3或4类型的设置,这意味着不再那么有趣了看到在我的代码中的脚印

并且现在我只需要从文件中读取css样式设置(使用System.IO),我尝试过,将它们属于它们的属性应用到样式.css文件中,但是我可以注意到这些样式属性无法应用代码/文件生成的代码,而不是硬编码的html标记。

所以我想知道,如果你想避免在代码背后的一堆线,除了阅读它从一个单独的文件(像我可以想到的昏迷sepertaed),然后解析它:

txtfile - 每一行是物业

像一本字典,所以你可以读/加载它直接进入从一个文件中的代码,

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的正确方法? (是什么事情我做错了,或者它是一个已知的问题?)

+1

你的问题太模糊了我不能相信你有三个upvotes:/我错过了什么?你是如何确认风格不适用的?生成的HTML是什么(右键单击>查看页面源代码)? – Ayyash

+0

这听起来像你正试图创建与内联样式属性的HTML元素?如果这是一个单一的列表,你可以添加一个类到你的CSS样式表中,并将该类分配给每个元素? 'someHtmlString = String.Format(“

  • {0}
  • ”,item,counter);' – Zack

    +0

    @ZackT。 这正是我所说的它不适用,如果你指定的价值,但正如你所说它应该?!,我会尝试检查是否VS的VS或我的Iexplorer的错误 – LoneXcoder

    回答

    1

    正如扎克T.建议,你可以用他表明,该方法应用样式:

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

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

    <html> 
    <head> 
    <style type="text/css"> 
        .listItem 
        { 
         background-color:Red; 
        } 
    </style> 
    </head> 
    <body></body> 
    </html> 
    
    +1

    谢谢。错误是我......工作太迟了,我把风格放在一个单独的文件中,(突然间开始分离关注传统......)虽然我没有试图理解为什么,我毫无理由地跳到了结论(仅仅因为遇到一次,一篇关于动态html控件的文章,说它有一些问题,并且我也知道一些关于JavaScript的东西,如果控件没有渲染但JavaScript不适用,除非你添加延迟或文档准备等等,所以我以为它是类似的)...非常抱歉 – LoneXcoder

    +0

    很高兴你明白了! – Zack