Samuel Learning

  • 联系
  •  
  • 管理

文章分类(203)

  • 01 ASP/HTML(6)
  • 02 Script/CSS(16)
  • 03 C/C++
  • 04 XML(4)
  • 05 微软编程(26)
  • 06 J2EE(60)
  • 09 Linux(14)
  • 10 Database(27)
  • 11 报表打印
  • 12 打包安装(1)
  • 13 模式重构(2)
  • 14 系统架构
  • 15 敏捷开发(11)
  • 16 案例分析(30)
  • 17 Workflow(1)
  • 18 配置管理(1)
  • 19 项目管理
  • 20 英语(4)

新闻分类(52)

  • CXF学习
  • Hibernate学习(1)
  • iBatis学习(16)
  • Struts1学习(1)
  • Struts2学习(34)

.NET资源

  • adxmenu
  • C# Open Source
  • DNN Directory
  • M2Land
  • Windows Form FAQ
  • 中国DNN
  • 中国DNN联盟

Ajax

  • DoJo
  • GWT
  • JQuery
  • jquery autocomplete
  • jquery flexgrid
  • JQuery Form
  • jquery masked input
  • JQuery UI
  • jquery validation
  • Jquery 图表
  • jquery报表
  • jquery插件集合
  • Qooxdoo
  • Tibco GI
  • YUI
  • YUI-EXT
  • ZeroKode

Java开源

  • ABLE
  • Agile Tao
  • Ajax4JSF
  • Alfresco
  • AppFuse
  • Compiere
  • Equinox
  • Findbugs
  • Geronimo
  • Grails
  • Harmony
  • Hibernate论坛
  • JAG
  • Java开源大全
  • Java视线论坛
  • jBPM工作流
  • JSFTutorials
  • Nereide ERP
  • Ofbiz ERP
  • Opentaps ERP
  • operamasks
  • Petstore
  • Prototype.js
  • RIFE
  • Runa
  • SpringSide
  • Struts Menu
  • Sun Glassfish
  • Trails
  • YUI4JSF
  • 满江红

Mobile

  • Sencha

WEB资源

  • DHTML中心
  • DHTML参考手册
  • DHTML文档
  • EclipsePlugin
  • Firebug
  • GRO Clinux
  • jMaki
  • JSTL文档
  • LoadIcon
  • Openlaszlo
  • Struts Menu 展示
  • Web Test Tools
  • WebCtrs
  • Webdeveloper
  • 中国RIA开发者论坛

Workflow

  • E-Workflow
  • JBPM
  • OpenWFE
  • OSWorkflow
  • WFMC
  • Workflow Research

其他连接

  • confach
  • CPP
  • ejay
  • Giovanni
  • 丹佛
  • 交大e-learning
  • 交大研究生院
  • 可恶的猫
  • 天天@blog
  • 我的相册
  • 阿飞

大牛人

  • 32篇JBPM
  • David.Turing
  • HongSoft@业务集成
  • Joel
  • Koen Aers
  • Martinfowler
  • Raible Matt
  • Raible Wiki
  • Scott W.Ambler
  • Tom Baeyens
  • Uncle Bob
  • 一个世界在等待
  • 子在川上曰
  • 小布老师
  • 小明
  • 差沙
  • 徐昊
  • 江南白衣
  • 汪博士
  • 汪小金
  • 银狐999

开源软件

  • 2Bizbox ERP
  • CompiereCRM&ERP
  • EGW
  • Vtiger CRM
  • webERP

敏捷

  • Canoo
  • Cruisecontrol
  • DBUnit
  • EL4Ant
  • Extreme Programming
  • Fit
  • Fitnesse
  • JFrog
  • Liquibase
  • Maven
  • MockObjects
  • Selenium
  • Squish
  • xpairtise
  • XPlanner
  • XProgramming
  • 敏捷联盟

数据库

  • Oracle 中国
  • Oracle-ERP
  • Oracle在线社区

未归类

  • Aquarius Orm Studio
  • mambo建站系统
  • Oracle产品下载
  • 远程同步管理工具Capivara

经典框架

  • Apache Shale
  • formdef-struts
  • FreeMarker 主页
  • JBoss Seam
  • JSF 中心
  • JSF 入门应用
  • JSF中国
  • MyFaces官方
  • Spring 社区
  • Spring专业网站
  • Spring中文论坛
  • Spring参考手册
  • Spring官方网站
  • strecks-struts
  • Struts1
  • Struts2
  • Struts-layout
  • StrutsWiKi
  • Tapestry WIKI
  • Tapestry 官方
  • Tapestry4开发指南
  • Tapestry中文文档
  • Webwork2文档
  • Wicket

网络教程

  • Laliluna
  • RoseIndia
  • Sang Shin
  • Visualbuilder

著名站点

  • Buildix
  • Dev2Dev
  • IBM dev中国
  • InfoQ
  • ITPub
  • Java Eye
  • Java Research
  • JavaRead
  • JavaWorldTW
  • Matrix
  • PHP100
  • PHPX
  • SpringSideWiKi
  • TheServerSide
  • TWPHP
  • 中国工作流论坛

项目管理

  • 管理人网

最新评论

View Post

利用 CSS Friendly Control Adapters 将 ASP.NET 控件转为符合WEB标准标签控制

翻译自:http://www.asp.net/cssadapters/WalkThru/WalkThrough.aspx

利用 CSS Friendly Control Adapters 将 ASP.NET 控件转为符合WEB标准的、有语意的HTML页面 CSS 样式表控制。
例如,Menu、TreeView等控件均将输出< table>标签,而基于Web标准中的“有语意的”这一条,显然应该选择<ul>标签。
而使用CSS Friendly Control Adapters 会将其转为使用嵌套的<ul>标签渲染,这被称为纯CSS menu(http://www.meyerweb.com/eric/css/edge/menus/demo.html).
而对于以前不支持CSS的旧式浏览器,可以通过在配置文件中设定不同版本的浏览器使用不同的 Control Adapters
来解决!这样对于PocketPC也能通过提供不同的Control Adapters来获得支持!

== 下载和安装 ==

访问站点:http://www.asp.net/cssadapters/,单击“download source”按钮,下载ASPNETCssFriendlyAdapters.vsi。
或者直接下载: http://download.microsoft.com/download/b/a/3/ba3aee5e-2e28-4056-9e71-036b2e7f58af/ASPNETCssFriendlyAdapters.vsi

该 文件是一个 Visual Studio Content Installer 安装包,需要 Visual Web Developer  or Visual Studio 2005 方能运行解包。安装后将在你的Visual Studio中添加几个新的Web Site 模版。

The Visual Studio Content Installer

== 使用 ==
进入 Visual Studio,选择 File -> New Web Site 菜单项,选择新加入的“ASP.NET CSS Friendly Web Site”模版,开始你自己的CSS样式表站点设计,或者
选择“Tutorial on ASP.NET CSS Friendly Control Adapters”模版建立教程站点,学习CSS Friendly sample adapters的功能。

Create the new site using the CSS Adapter Template
创建新站点后,你可以看看里面的readme.txt 文件,了解下注意事项。
Be sure to read the readme.txt file

== 运行 ==

Main navigation menu for the kit

所有的adapted controls的例子放在页顶部的Exmaples菜单下面的,第一个就是被转换的<asp:menu>菜单控件例子:用嵌套的<ul>标签代替了不规范的<table>标签。

Navigating to the Menu sample

点击进入菜单控件例子页面,你能更清晰的看到转换前后有什么不同:


Layout of the kit's sample pages

每一个例子都可以通过设置在是否使用转化接头(Adapters)之间切换:

Enable/disable adapters

另外可以通过Theme Chooser在两个不同样式Theme(Basic, Enhanced)之间切换,样式文件在App_Themes中:

The Theme Chooser

要联机查看每个例子的源程序,可以通过点击“view source code”按钮:

Layout of the source code viewer page

== 文件的组织 ==

 * 页面文件放在站点的根目录下面。
 * 专用代码放在App_Code\SiteSpecific 文件夹下,只对这个教程站点有用的,没有实用意义的。
 * CSS Friendly Control Adapters的源代码放在App_Code\Adapters下。
 * App_Themes: 存放了两个不同的Theme样式
 * bin目录下放的是一个显示高亮度语法的工具:Wilco Bauer's handy utility(http://www.wilcob.com/Wilco/Toolbox/SyntaxHighlighter.aspx)
 * App_data 存放的是某些例子使用的xml数据
 * CSS 目录,存放的是与Theme无关的,被Control Adapters使用的样式,这些样式包含的是插接的控件的behavior规范而不是界面表现。例如,对于pure css 菜单,有颜色,字体的界面规范;更重要的是还要有菜单如何工作的规范,比如如何显示菜单子项(当鼠标移上菜单的时候),如何隐藏菜单子项(当鼠标离开菜单 的时候),这些CSS的通用规范被放于这个文件夹。旗下的子文件夹browser-specific包含了针对特定浏览器的CSS规范。
 * App_Browsers 目录,设置使用CSS Friendly Control Adapters 的浏览器,你可以设置成不管浏览器的类型版本如何,始终使用这些Adapters;也可以设置成只针对特定的浏览器以及特定的版本才使用。
 * Javascript目录,部分Control Adapters使用了一些JS代码实现,这些JS代码被存放于此。如果要改变该路径的名称,你需要在web.config文件中的 appSettings节  添加/改变 CSSFriendly-JavaScript-Path 的值:<add key="CSSFriendly-JavaScript-Path" value="~/JavaScript" />
 * Membership 目录,演示了如何插接ASP.NET 2.0 的membership 控件。

每一个转换的CSS控件都有自己的样式表,例如:<asp:GridView> 控件 has a style sheet named GridViewSample.css。该教程站点包含了两个Theme样式:
Basic and Enhanced, 因此在 Basic 文件夹和 Enhanced 文件夹中均有 GridViewSample.css 文件。

Folders and files in the App_Themes folders

本 教程站点在 App_Browsers 目录下的配置的.browse文件为 CSSFriendlyAdapters.browser,它配置为默认使用 CSS Friendly Control Adapters,当然你页可以将refID 改为 IE6to9, Gecko, Opera8to9 等等。

The kit's .browser file

运行了例子,了解了文件的组织和意义,现在该是创建自己的网站的时候。如何修改CSS改变控件的外观?
让我们从menu讲起,首先我们修改下当鼠标移动到菜单上的颜色,在VS中,打开 App_Themes\Basic\MenuExample.css.文件:

CSS

.PrettyMenu ul.AspNet-Menu li:hover,
.PrettyMenu ul.AspNet-Menu li.AspNet-Menu-Hover
{
    background:#4682B3;
}

将该颜色改成其它的值如 #27408B。保存,然后刷新菜单控件例子页面:

The menu sample with the original and new background hover color

还需要改变的是 .skin 文件,当浏览器不使用转换件的时候,控件默认会用该文件,打开 App_Themes\Basic\Basic.skin 文件,修改菜单的 DynamicHoverStyle 中的颜色值:

The Basic.skin file

=== 使用CSS转换件的空页面 ===

  <%@ Page Language="C# or VB" %>   
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <link runat="server" rel="stylesheet" href="~/CSS/Import.css" type="text/css" id="AdaptersInvariantImportCSS" />
        <!--[if lt IE 7]>
            <link runat="server" rel="stylesheet" href="~/CSS/BrowserSpecific/IEMenu6.css" type="text/css" id="IEMenu6CSS" />
        <![endif]-->
    </head>
    <body>
        <form id="form1" runat="server">
            <!-- adapted control(s) here-->
        </form>
    </body>
    </html>

Import.css 是 Theme无关的CSS,表示的是CSS转换件的 behavioral 规则。
IEMenu6.css 是一个有条件的连接选项,当使用以前版本的IE浏览器需要。


=== 打造Pure CSS 菜单页面 ===

ASP.NET

<script runat="server">
    Public Sub OnClick(ByVal sender As Object, ByVal e As MenuEventArgs)
        MessageLabel.Text = "You selected " & e.Item.Text & "."
        e.Item.Selected = True
    End Sub
</script>

<asp:Menu ID="EntertainmentMenu" runat="server" Orientation="Horizontal" onmenuitemclick="OnClick" CssSelectorClass="SimpleEntertainmentMenu">
    <Items>
        <asp:MenuItem Text="Music">
            <asp:MenuItem Text="Classical" />
            <asp:MenuItem Text="Rock">
                <asp:MenuItem Text="Electric" />
                <asp:MenuItem Text="Acoustical" />
            </asp:MenuItem>
            <asp:MenuItem Text="Jazz" />
        </asp:MenuItem>
        <asp:MenuItem Text="Movies" Selectable="false">
            <asp:MenuItem Text="Action" />
            <asp:MenuItem Text="Drama" />
            <asp:MenuItem Text="Musical" />
        </asp:MenuItem>
    </Items>
</asp:Menu>

CSS

 .SimpleEntertainmentMenu .AspNet-Menu-Selected
{
    border: solid 1px #00ff00 !important;
}

.SimpleEntertainmentMenu .AspNet-Menu-ChildSelected
{
    border: solid 1px #ff0000 !important;
}

.SimpleEntertainmentMenu .AspNet-Menu-ParentSelected
{
    border: solid 1px #0000ff !important;
}

posted on 2009-05-30 18:14 MingIsMe 阅读(69) 评论(0)  编辑  收藏 所属分类: 05 微软编程

 
Powered by:
BlogJava
Copyright © MingIsMe