白色标签现有的asp.net网站表单网站

时间:2014-03-21 21:17:56

标签: asp.net css webforms white-labelling

我要求每个客户使用白色标签(特别是更改标题徽标/菜单/字体颜色)我们现有的asp.net网络表单网站。客户可以选择他们想要的网站颜色。

该网站是一个门户网站,由多个网站组成。我不想使用主题或不同的母版页,因为我们没有足够的带宽来重组应用程序。据我所知,我有几个选择。我想知道是否有更多或有人知道任何其他更好/最好的方法来做到这一点。前两个选项可能类似,但一个可能是更好的表现。

为所有"颜色变化提供虚拟css课程"部分 - 比如customColor。

实施例

<div class="menu customColor" />
<div class="header customColor" />

菜单和标题css类包含所有样式,但颜色。

  1. 加载母版页时,以编程方式为此css类添加颜色。伪代码:Page.Header.Controls.Add(New LiteralControl("<style type=""text/css""> .customColor { color: blue }");

  2. 让asp.net ashx处理程序返回包含customColor { color:blue };的whiteLabel.css,并动态地将此css添加到页面中。

  3. 每个页面中的元素并不多,需要更改。您可以在每个页面中设置一个功能,从数据库中设置适当的颜色。

  4. 我认为我的选择几乎是动态地改变css或以编程方式将颜色设置为单个元素。

    另外我认为选择#1比#2更好,因为css会缓存在#2上吗?这将使公司难以改变颜色。

2 个答案:

答案 0 :(得分:0)

您的所有网页都使用共同的MasterPage吗? 如果是这样,那么我曾经使用过为body设置一个类,或者可能是一个div包装器,如:

<div class='<%= GetCustomClass() %>'>
    <div class="menu customColor" />
    <div class="header customColor" />
</div>

GetCustomClass是一个静态方法,它将根据客户的选择返回说class1或class2 .css将类似于:

class1.customColor{color:blue;}
class2.customColor{color:red;}

希望有所帮助。

答案 1 :(得分:0)

我们也排除了选项3,如果在页面加载期间发生javascript错误,它可能无法重新页面。

留下选项1,尽管你可能想要更具可读性的东西:

<style>
    .menu.customColor { color: <%= menuColor %>; }
    .header.customColor { color: <%= headerColor %>; }
</style>