网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ASP.NET技巧:为Blog打造个性日历.
.如何实现用ODBC连接MySQL和ASP.N.
.ASP.net Server Application Una.
.将输入的20041219等的数字字符串.
.Asp.Net 使用 GDI+ 绘制3D饼图入.
.asp.net2.0如何加密数据库联接字.
.asp.net常用代码.
.ASP.NET AJAX正式版带来的Valida.
.ASP.NET Atlas April CTP发布.
.在ASP.NET Atlas中调用Web Servi.
.在 Linux 下运行 ASP.NET 2.0.
.web.config配置文件示例.
.使用.NET实现断点续传.
.使用UTF-8编码/JMail组件发送邮件.
.小议优化ASP.NET应用性能之Cache.
.Asp.Net使用POST方法最简单的实现.
.web.config点滴:更改login控件对.
.在ASP.NET Atlas中调用Web Servi.
.部署ASP.NET(包含.net framework.
.ASP.NET极限:页面导航 (翻译).

Asp.Net下通过切换CSS换皮肤

发表日期:2007-1-4


换皮肤的方式有很多种,最简单的通常就是切换页面CSS,而CSS通常写在外部CSS文件里。那么切换css其实就是更换html里的link href路径。我在网上搜索了下。一般有两种方式:

1,在页面放一个holder控件。然后用编程方式把当前用户的风格css link写入页面。
2,通过反射机制,逐个控件设置css样式。
上面两种方式都挺麻烦的,
第一种需要在每个页面上放一个holder控件。类似的做法还有把link标签加runat=server的做法。页面多了,都比较麻烦。
第二种不用考虑了。性能编程效率上问题多多。

记得以前在学习DNN的时候,在他里面发现了一种修改form里默认的action地址的方式,直接参考下。还不错:
直接重写Render事件
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            StringWriter sw = new StringWriter() ;
            HtmlTextWriter htmlWriter = new HtmlTextWriter(sw) ;

            base.Render(htmlWriter) ;
            //当前用户选择的风格css
            string css = "<link href=\"css url\" rel=\"stylesheet\" type=\"text/css\">" ;

            string html = sw.ToString() ;
            int startPoint = html.IndexOf("</head>", StringComparison.CurrentCultureIgnoreCase);
            if (startPoint > 0)
            {
                html = html.Insert(startPoint, css);
            }

            writer.Write(html) ;
        }
把这个放在每个页面的基类PageBase里。那就方便多了。
当然,如果不想在让每个page都继承自定义的基类的方式,那也可以通过在HttpModule里写。也很方便.
一处写好,页页受用呀。

http://www.cnblogs.com/kwklover/archive/2007/01/03/610822.html

上一篇:运用每个开发者都必须了解的十个安全技巧来保护代码 人气:4752
下一篇:在MasterPage中檢驗User是否登入 人气:3743
浏览全部Asp.Net的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐