项目技术经验总结二:系统多风格的实现

项目|项目

在刚刚完成的一个系统中,(基于asp.net)要求系统提供多风格,用户可自由选择系统风格.我们通过采用css样式文件替换,简单有效地实现了该项功能.实现步骤如下:

1.定义css样式文件,可命名为style_blue.css等:
2.在每个程序页面(*.aspx)设置相应的css中Class
3.用户登陆时取出其设置的风格(值为css文件名,如style_blue)利用Session保存
4.进到特定页面,从Session取出css风格,在文件头加载相应的css文件(如style_blue.css)

当然,如果需要多种风格就要预制多个css文件.

同那种把页面元素的颜色值写在数据库里,然后再读出来的做法相比较,
优点:
工作量少\不需要与数据库多次打交道(仅进入系统时候读取用户设置的css文件名)
缺点:不能由用户自由设置页面元素的风格.,但由用户自己设置页面元素要求用户有一定的美学基础,此缺点在应用系统中一般可不计.

附录一:css样式文件
A:link,A:active,A:visited{TEXT-DECORATION:none ;Color:#000000}
A:hover{TEXT-DECORATION: underline;Color:#4455aa}.
SelectedItem
{
background-color:#8AC8DF;
}
BODY
{
font-family:verdana,sans-serif;FONT-SIZE: 9pt;BACKGROUND-COLOR: #F6f6f6;
Scrollbar-face-color: #DEE3E7;
Scrollbar-highlight-color: #FFFFFF;
Scrollbar-shadow-color: #DEE3E7;
Scrollbar-3dlight-color: #D1D7DC;
Scrollbar-arrow-color: #006699;
Scrollbar-track-color: #EFEFEF;
Scrollbar-darkshadow-color: #98AAB1;
}
.table_table
{
font-family:verdana,sans-serif;
FONT-SIZE:9pt;
BACKGROUND-COLOR:#4682b4
}
.table_head
{
font-family:verdana,sans-serif;
FONT-SIZE: 10pt;
BACKGROUND-COLOR: #C1D0E1;
COLOR:#ffffff;
background-image: url(blue.gif);
}
.table_strong
{
font-family:verdana,sans-serif;
FONT-SIZE: 9pt;
BACKGROUND-COLOR: #4682b4;
COLOR:#ffffff;
font-weight:bold;
}
.table_trline
{
font-family:verdana,sans-serif;
FONT-SIZE: 9pt;
BACKGROUND-COLOR: #C1D0E1;
HEIGHT:19pt;
TEXT-ALIGN:CENTER;
COLOR:#ffffff;
font-weight:bold;
}
tr
{
font-family:宋体;
FONT-SIZE: 9pt;
BACKGROUND-COLOR: #F8F8F3;
TEXT-ALIGN:CENTER
}
.t{LINE-HEIGHT: 1.4}
DIV
{
font-family:verdana,sans-serif;
FONT-SIZE: 9pt;
}
FORM{font-family:verdana,sans-serif; FONT-SIZE: 8pt}
INPUT{FONT-SIZE: 9pt; COLOR: #000080; BACKGROUND-COLOR: #EFEFEF}
INPUT.buttonface {FONT-SIZE: 9pt; COLOR: #000080; BACKGROUND-COLOR: #d2e9ff}
INPUT.dialogbotton {FONT-SIZE: 9pt; COLOR: rgb(0,0,128); BACKGROUND-COLOR: rgb(255,204,51)}
.submit{FONT-SIZE: 9pt; COLOR: #000080; BACKGROUND-COLOR: #d2e9ff}
textarea {border-width: 1; border-color: #000000; background-color: #efefef; font-family: 宋体; font-size: 9pt;}
select {border-width: 1; border-color: #000000; background-color: #FFFFFF; font-family: 宋体; font-size: 9pt; }
OPTION{FONT-FAMILY: 宋体; FONT-SIZE: 9pt;background-color: #efefef}.Menu_Button
{
BORDER-BOTTOM: #1864AE 1px solid;
BORDER-LEFT:rgb(233,244,249) 0px solid;
BORDER-RIGHT: #1864AE 1px solid;
BORDER-TOP: #0051E7 0px solid;
CURSOR: hand;
BACKGROUND-COLOR:#4682b4;
}
.Menu
{
font-size:9pt;
BACKGROUND-COLOR:#74A3C9;
}
.navPoint {
CURSOR: hand; COLOR:white; FONT-FAMILY: Webdings;background-color:#4682b4;
}
P{font-family:verdana,sans-serif; FONT-SIZE: 9pt}
BR{font-family:verdana,sans-serif; FONT-SIZE: 9pt}

附录二:在*.aspx页面中DataGrid设置css中的class

<asp:DataGrid id="dgrdnet" runat="server" class="table_table" Width="100%" EnableViewState="False"
AutoGenerateColumns="False" CellPadding="1" CellSpacing="1" CssClass="table_table" BorderWidth="0px">
<AlternatingItemStyle HorizontalAlign="Left" VerticalAlign="Middle"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Left" Height="30px"></ItemStyle>
<HeaderStyle Height="24px" CssClass="table_head"></HeaderStyle>
<Columns>
<asp:BoundColumn DataField="RFQ_NUMBER" HeaderText="Rfq"></asp:BoundColumn>
<asp:BoundColumn DataField="item_code" HeaderText="ItemCode"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="ItemDesc">
<ItemTemplate>
<asp:textbox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.item_desc") %>' >
</asp:textbox>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.item_desc") %>'>
</asp:TextBox>
</EditItemTemplate>

时间: 2016-02-05

项目技术经验总结二:系统多风格的实现的相关文章

国航OA项目技术总结(二)关于JVM虚拟机中对象的创建,手机端提速的重要优化

由于JVM虚拟机对对象的销毁,程序员是不知道的:而且手机的配置肯定不如PC机,就算PC机里程序运行得多顺畅,手机里的运行速率还是不敢保证. 针对对象的问题,尽量将一次能创建的对象只创建一次: 比如中文都得这样写: public static final String TRACE = "流程跟踪";//√ public static final String TITLE = "标题:";//√ public static final String DRAFTER =&

Java Web技术经验总结(二)

该系列的第一篇在此:Java Web技术经验总结一,主要包含我在日常工作中的经验和心得体会(如有不足之处欢迎指出). Maven的使用经验 依赖的scope有test.provided.compile等.test:一般是单元测试场景使用,在编译环境加入classpath,但打包时不会加入,如junit等:provided:表示容器或者JDK已经提供该依赖,打包时不需要打包入war:compile:默认范围,在工程环境的classpath(编译环境)和打包(如果是WAR包,会包含在WAR包中)时候

DockOne微信分享(八十一):唯品会数据库备份恢复容器化项目实践经验总结

本文讲的是DockOne微信分享(八十一):唯品会数据库备份恢复容器化项目实践经验总结[编者的话]本文分享了唯品会数据库Docker的异地容灾项目实践经验,项目中针对用户数据库的异地恢复场景的需求进行开发和测试,整合了网络,存储.调度.监控,镜像等多个模块.在实施完成后,从技术上总结关于选型.开发.踩坑.测试等方面的经验. 项目背景 数据库Docker的异地备份恢复容灾项目,针对用户数据库的异地备份恢复场景的需求进行开发和测试,整合了容器网络.存储.调度.监控.镜像等多个模块.同时针对数据库的日

Shopify的Docker实战经验(二)如何用容器支持10万的在线商店

本文讲的是Shopify的Docker实战经验(二)如何用容器支持10万的在线商店,[编者的话]Shopify是一个电子商务平台,提供专业的网上店面.目前的客户超过12万,包括GE.特斯拉汽车.GitHub等.作为首家市值超过10亿美元的加拿大网络公司,Shopify在欧美市场的影响力也与日俱增.Shopify是一个大型的Ruby on Rails应用,其产品服务器能通过给1700个处理核心和6TB RAM分配任务来完成每秒处理8000多个请求.Shopify在其博客上分享了系列内容来介绍他们的

php-现有资源下,项目技术选型求助

问题描述 现有资源下,项目技术选型求助 我现在想自己运营一个公益项目,技术架构有几个给我选 但服务器环境现在还不想投入太多, 现在有一台16G 内存,800Mhz 的旧服务器,CPU 8核 E5420的机子.操作系统是 win 2003 Server 32位 R2 版 我就想现有的条件下能选出最好的技术选型.(别问我为什么,因为我就没有钱扩展服务器) 由于我服务器是32位系统,所以java的内存利用就很低, java: 我自己的java 技术选型有,Spring MVC+Hibernate 或者

基于三层架构技术的网上书店系统的搜索图书的功能

问题描述 请问各位基于三层架构技术的网上书店系统的搜索图书的功能应该如何实现 解决方案 解决方案二:这结贴率...不就是查询么--解决方案三:三层架构??楼上说的对,就是查询,和你几层没关系架构是指设计搜索是指技术你需要在View层布局好你的输入框和ButtonController层把View层得Search.text传进来,通过查找Model层数据,再返回给View层解决方案四:引用2楼ruanwei1987的回复: 三层架构??楼上说的对,就是查询,和你几层没关系架构是指设计搜索是指技术你需

【干货合集】大流量与高并发:双11技术盘点(二)

峰会专题:https://yq.aliyun.com/activity/112 报名入口:http://yq.aliyun.com/webinar/join/49?spm=5176.8155509.437644.12.F2Xi5N 从2009年第一届双十一购物节到2015年双十一全天912.17亿元的交易额,"双十一"当天订单创建峰值增长了350倍(每秒14万笔),支付峰值 (每秒8.59万笔)增长了430倍.为了保证越来越多购物者的用户体验,在IT基础设施上,阿里一次又一次地遭遇并超

Java技术实现数据库应用系统慨述

Java语言是Sun MicroSystems 公司于1995年正式命名并推出的一种面向对象的编程语言-OOP(abbr.Object Oriented Programming).Sun 公司说:Java 程序设计语言被设计成是 by programmers for programmers,其随着 Internet 的发展而广为流行.用它开发的系统"一次开发,到处运行"的特色以及程序开发设计时所体现出的面向对象的思想深深地触动着人们.它的语言简洁.集多种程序设计语言之大成,且面向对象.

android 5.0错误-安卓项目不兼容5.0系统

问题描述 安卓项目不兼容5.0系统 开发一个电商项目,基于安卓6.0开发的.首页就是一个RecylerView显示数据,其中第一个条幕是一个ViewPager.在安卓4.3运行流畅,但是在4.4的魅族,和5.0的小米和三星手机中,只要ViewPager显示出来,占用内存马上达到150M,页面滑动很慢,但是只要将ViewPager滑出界面,页面滑动又恢复正常.我删掉过一次第一行ViewPager.跑在三星手机上,就完全没问题.有没有大神知道这到底是为什么啊? 解决方案 安卓5.0系统Android