曾经是否想给您的网站的观众有机会去定制网站的色彩?这篇文章给出了使用ASP.NET来建立自己这样的网站的一个解决方案。在这里,我们使用ASP.NET母版页,所选择的语言是C#。
如msn.com和bbc.co.uk网站允许用户改变他们的网站模板颜色。这个想法看上去似乎是个噱头,并似乎有点毫无意义的,因为不是每个人都需要的,或者是符合每个人的口味。
但也有一些地方- 如MSN和BBC等大型组织会花很多钱在市场营销研究上。
首先,让我们看看演示的顺序和文件要求。我们使用Default.aspx开始,
所有的工作在 central.aspx 和master.cs中完成。
首先的一个关键点是样式是aspx文件而不是css文件。central.aspx文件渲染一个CSS文件,因为我们在文档内容的顶部声明。样式表如下:
当central.aspx加载时,服务器读取的C#的ASPX的内容,然后渲染为CSS到浏览器上。这是因为我们声明内容类型为""text/css"。这是因为我们声明我们的内容的类型为 "text/css"。
在central.aspx,我们判断是否有一个名字为"colorme"的cookie。如果没有,我们生成一个1至5之间的一个随机数和定义适当四个变量根据这个随机数。(这些变量将会用来设置logo , 弱色,中等色彩,和强烈的色彩)。 如果有一个名字为"'colorme
'"的cookie ,我们的四个变量设置到适当的logo和颜色。一旦四个变量的设置,不同的CSS样式被分配给相应的值。
以上发生,是在当页加载的时候-设置颜色
现在,提供用户他们能选择的颜色的权利,在我们的例子中有:green, orange, pink, blue, 和 purple
色箱子之下的超链接设置如下所示:
当点击其中任何一个,Default.aspx的被调用,调用master.cs 和central.aspx。central.aspx将像上面说明的一样表现,master.cs留意URL中querystring的 'color' 。
master.cs 像下面所示:
但页面加载的时候,我们要寻求两个东西:ID querystring 和colour querystring ,在我们的案例当中,ID只是指引我们到相应的页面,我们可以加载control2.ascx,control3.ascx,如果ID为空,home.ascx 将会被加载。
是我们寻求的colour querystring ,如果它不等于空,我们看到它是否等于我们的颜色之一-green, orange等,如果相等,我们根据颜色选择简单地创建一个Cookie。central.aspx被调用,通过查看是否有一个名字为 'colorme
' 的cookie ,并选择相关的样式。
注意,如果你设置了样式表这样做,您就可以让您的用户更改任何样式。
该方法是由Cookie驱动的。大多数用户有能力阻止和删除Cookie ,你可能需要添加一个帮助页面去描述。
查看这个的例子。
本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2009/12/24/1631025.html,如需转载请自行联系原作者