zoukankan      html  css  js  c++  java
  • asp.net程序中如何使用皮肤更换的小功能

    写这篇文章,因要往OA系统上添加更换主题的功能,在网上仔细搜索了一下,主要有几种方法可以实现,

    第一种:使用原生态javascript+Css来实现,(代码多,看着纠结,对于前台不熟悉的程序员来说看深奥一点的javascript代码无疑是雪上加霜,反正我是这么理解的)

    第二种:使用Jquery+Css来实现,(代码较少,看着也纠结,对于前台不熟悉的程序员来说看深奥一点的Jquery代码也无疑是雪上加霜,反正也我是这么理解的)

    第三种:当然是使用.net自己的解决办法喽!

    前两种方法我也不介绍了,网上一搜一大把。主要介绍下第三种的使用方法,其实很简单。估计看一遍就知道怎么做了,

    首先看前台代码:

     <form id="form1" runat="server">
        <div>
            <div id="header">
                <ul>
                    <li><a href="#">首页</a></li>
                    <li><a class="skin" href="#">换肤</a>
                       <div class="Skin_div">
                          <asp:RadioButton ID="RadioBtnSkin1" GroupName="skin" AutoPostBack="true" Checked="true" runat="server" OnCheckedChanged="RadioBtnSkin1_CheckedChanged" />皮肤一<br />
                          <asp:RadioButton ID="RadioBtnSkin2" GroupName="skin" AutoPostBack="true" runat="server" OnCheckedChanged="RadioBtnSkin2_CheckedChanged" />皮肤二<br />
                           <asp:RadioButton ID="RadioBtnSkin3" GroupName="skin" AutoPostBack="true" runat="server" OnCheckedChanged="RadioBtnSkin3_CheckedChanged" />皮肤三
                       </div>
                    </li>
                </ul>
            </div>
            <div id="content"></div>
            <div id="footer"></div>
        </div>
        </form>
    View Code

    这里用到了jquery,用来显示与隐藏换肤菜单

     <link href="css/color1.css" id="color" runat="server" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
        <script type="text/javascript">
    
            $(document).ready(function()
            {
                $(".skin").toggle(function()
                {
                    $(this).next().show();
                }, function () {
                    $(this).next().hide();
                })
            })
        </script>
    <link href="css/color1.css" id="color" runat="server" rel="stylesheet" type="text/css" />默认是color1.css样式,看这句链接样式表有个ID属性(自己加的),加上runat="server"之后

    把他设置成服务器控件,这样的话,在后台就可以获取到它的属性了,可以随便设置了。

    接下来就是要准备三个样式表,每个样式表里面都给头部,内容,尾部,设置了不同的颜色,随便你搞几个样式表都可以,

    来看后台:
     protected void Page_Load(object sender, EventArgs e)
            {
                if (Request.Cookies["SkinCss"] != null)
                {
                    this.color.Href = Request.Cookies["SkinCss"].ToString();
                }
                else
                {
                    //如果有需要可以将skin字段存储于数据库,便于管理员切换页面主题,例如节日主题颜色
                    //从数据库读取skin的字段表,获取值赋给href,如果为空,使用默认的样式表   
                    //this.color.Href = "数据库的skin值";
                }
            }
    
            protected void RadioBtnSkin1_CheckedChanged(object sender, EventArgs e)
            {
                this.color.Href = "css/color1.css";
                Response.Cookies["SkinCss"].Value = this.color.Href.ToString();
                Response.Cookies["SkinCss"].Expires = DateTime.Now.AddDays(365);
            }
    
            protected void RadioBtnSkin2_CheckedChanged(object sender, EventArgs e)
            {
                this.color.Href = "css/color2.css";
                Response.Cookies["SkinCss"].Value = this.color.Href.ToString();
                Response.Cookies["SkinCss"].Expires = DateTime.Now.AddDays(365);
            }
            protected void RadioBtnSkin3_CheckedChanged(object sender, EventArgs e)
            {
                this.color.Href = "css/color3.css";
                Response.Cookies["SkinCss"].Value = this.color.Href.ToString();
                Response.Cookies["SkinCss"].Expires = DateTime.Now.AddDays(365);
            }
    至此,功能就实现了,样式表里面也可以把背景颜色替换成背景图片,主要还是使用了Cookie来实现,更换的时候把值存进Cookie,在页面加载的时候判断Cookie里面是否有值,如果有就直接拿出来用,

    没有的话使用默认值。如果管理员想设置样式表那就要把SkinCss的值存到数据库,在页面加载的时候应用就可以了,其实想用Session,但是Session的ID还是要依靠Cookie来保存,万一用户的客户端

    禁用了Cookie,可能会出现问题。所以就用Cookie了。






  • 相关阅读:
    logback配置和使用
    安装多个jdk导致eclipse打不开问题
    Spring事务管理
    使用JavaConfig配置SpringMVC
    Spring pom.xml配置
    Maven私服搭建(Nexus Repository Manager 3)
    Maven多环境配置
    Maven多模块构建实例
    Maven依赖机制
    Maven安装与配置
  • 原文地址:https://www.cnblogs.com/shaojiang/p/5220254.html
Copyright © 2011-2022 走看看