`
izuoyan
  • 浏览: 9221919 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

CSS 控件适配器工具包新版发布

阅读更多

【原文地址】CSS Control Adapter Toolkit Update
【原文发表日期】Friday, September 08, 2006 6:53 PM

今天,我们发布了ASP.NET 2.0的CSS控件适配器的更新版本,内中包含了bug fixes,用户建议的的功能,以及对新控件的支持。你可以免费下载,马上开始使用它们,来给予下列ASP.NET控件用纯粹的CSS优化过的标识(markup)::

  • Menu
  • TreeView
  • GridView (新)
  • DetailsView
  • FormsView
  • DataList
  • Login(新)
  • ChangePassword (新)
  • CreateUser (新)
  • PasswordRecovery (新)
  • LoginStatus (新)

CSS控件适配器第一次发行时,我曾写帖子说明过,这些控件适配器使用了ASP.NET 2.0中一个新的内置的扩展机制,叫做“控件适配器(control adapters)”。控件适配器允许你将其接入(plug-in)任何ASP.NET 服务器控件,然后它就会覆盖,修改或细调( tweak)那个控件的显示输出逻辑。

控件适配器很酷的地方是,它们不要求页面开发人员对一个新的控件编程,或修改控件编程模型的semantics,即,跟以前一样,你仍旧使用同样的控件属性,方法,事件和模板。建造页面的开发人员可以完全忘却使用了控件适配器,控件适配器模型使得注册和封装这样的支持非常干净。

快速入门示范

在免费的Visual Web Developer或Visual Studio 2005中使用CSS控件适配器工具包,按下列步骤做:

第一步:安装CSS控件适配器工具包:

下载和安装CSS 控件适配器工具包到你的机器上。点击这里下载一个Visual Studio的.VSI 模板项目,它会生成一个配置了CSS控件适配器的可以运行的项目模板。这是个安全的下载,它不会修改VS或ASP.NET中的任何文件或设置,所以你不要担心它是否会对现有编码造成问题。

第二步:创建一个注册了CSS控件适配器的新网站:

在Visual Web Developer或VS 2005中,在菜单里选择文件->新网站。这会打开“新网站”对话框。选择你的编程语言,然后选择新安装的“CSS友好网站(CSS Friendly Web Site)”项目模板:

这会为你创建一个新的网站项目,它的app_code目录里已经包含了CSS控件适配器的源码。它也包含了一些默认的CSS样式文件,其中有为你预先定义好了的样式类的名称(class name),你可以用它们来定制你需要的任何CSS标识(CSS markup):

第三步:试一些CSS样式控件例子:

要看控件适配器是如何改变服务器控件的标识的话,研究一下默认添加到新项目中的walkthrough子目录

例如,在下图中,SimpleMenu.aspx网页静态地定义了一个菜单控件,该控件连到了一个OnClick事件处理方法(或者,你也可以使用导航直接转到一个特定的网页去):

<!-- Code Insert -->
<asp:MenuID="EntertainmentMenu"runat="server"Orientation="Horizontal"onmenuitemclick="Menu_OnClick"CssSelectorClass="SimpleEntertainmentMenu">
<Items>
<asp:MenuItemText="Music">
<asp:MenuItemText="Classical"/>
<asp:MenuItemText="Rock">
<asp:MenuItemText="Electric"/>
<asp:MenuItemText="Acoustical"/>
</asp:MenuItem>
<asp:MenuItemText="Jazz"/>
</asp:MenuItem>
<asp:MenuItemText="Movies"Selectable="false">
<asp:MenuItemText="Action"/>
<asp:MenuItemText="Drama"/>
<asp:MenuItemText="Musical"/>
</asp:MenuItem>
</Items>
</asp:Menu>

在code-behind里,Menu_OnClick事件的编码是象这样的:

<!-- Code Insert -->
PublicSubMenu_OnClick(ByValsenderAsObject,ByValeAsMenuEventArgs)
MessageLabel.Text="Youselected"&e.Item.Text&"."
e.Item.Selected=True
EndSub
<!-- End Code Insert -->

在运行时,CSS控件适配器会导致菜单输出使用了<li>和<ul>元素的CSS样式化了的的标识,而不是表格,当我们应用一个CSS样式表到页面时,我们将得到一个好看的分层的下拉式菜单:

在看这些样本例子时,你也许要看一下CheckBoxTreeView 这个例子。它示范了如何用CSS来样式化<asp:treeview>控件以使用行内( inline)的复选框:

那么CSS控件适配器是如何工作的呢?

控件适配器是些继承了System.Web.UI.Adapters.ControlAdapter基类的类,实现了绘制/渲染(rendering)方法,这些方法允许控件适配器完全定制一个单独的控件显示的标识。当你使用CSS友好网站项目模板创建一个新的网站项目时,11个预建的与CSS友好的控件适配器的源码就被自动地加到你的app_code目录中了:

你可以原本不动地使用这些控件适配器类,不需要改变编码,就能得到与CSS友好的输出,或者你可以对它们进行细调,假如你需要对显示输出做任意定制的话。

控件适配器是通过在当前项目的应用程序根目录的直接子目录,/App_Browsers里,添加一个.browser文件,来与 ASP.NET注册的。.browser 文件里包含了如下所示的简单的标识,允许你指定哪个控件适配器应该用在哪个控件上:

<!-- Begin Code -->
<browsers>
<browserrefID="Default">
<controlAdapters>
<adaptercontrolType="System.Web.UI.WebControls.Menu"adapterType="CSSFriendly.MenuAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.TreeView"adapterType="CSSFriendly.TreeViewAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.DetailsView"adapterType="CSSFriendly.DetailsViewAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.FormView"adapterType="CSSFriendly.FormViewAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.DataList"adapterType="CSSFriendly.DataListAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.GridView"adapterType="CSSFriendly.GridViewAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.ChangePassword"adapterType="CSSFriendly.ChangePasswordAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.Login"adapterType="CSSFriendly.LoginAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.LoginStatus"adapterType="CSSFriendly.LoginStatusAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.CreateUserWizard"adapterType="CSSFriendly.CreateUserWizardAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.PasswordRecovery"adapterType="CSSFriendly.PasswordRecoveryAdapter"/>
</controlAdapters>
</browser>
</browsers>
<!-- End Code -->

如果需要,你可以针对不同的浏览器定制不同的控件适配器,或者定义这些控件适配器为“默认(Default)”,这样就会对访问你的应用的所有的浏览器都默认应用这些适配器。

做完这些配置后,就算搞定了,之后,你就可以使用标准的CSS样式表来定制所有的样式信息了。

如有疑问或要汇报任何bug或问题的话,请访问http://forums.asp.net网站的CSS Control Adapters 论坛。上面的CSS控件适配器在VS 2005网站项目模型(Web Site Project Model)和VS 2005 Web应用项目模型(Web Application Project Model)两者中都可使用。而且,CSS控件适配器有VB和C#两个版本你可以用。

在这里我要提起Russ和Heidi,为他们在创建CSS 控件适配器和样本例子方面的出色工作表示特别的感谢!

谢谢,

Scott

标签:ASP.NET, .NET, Tips and Tricks

(思归译)

发表于 2006年9月10日 3:20

<link href="http://blog.joycode.com/scottgu/Services/Pingback.aspx" rel="pingback"> <!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://blog.joycode.com/scottgu/archive/2006/09/10/82964.aspx" dc:identifier="http://blog.joycode.com/scottgu/archive/2006/09/10/82964.aspx" dc:title="CSS 控件适配器工具包新版发布" trackback:ping="http://blog.joycode.com/scottgu/services/trackbacks/82964.aspx" /> </rdf:RDF> -->
分享到:
评论

相关推荐

    使用ASP.NET 2.0 CSS 控件适配器生成CSS友好的HTML输出

    通过使用CSS控件适配器,可以将这些内置控件的输出转换为基于CSS的结构,减少对表格和内联样式的依赖。 适配器利用了ASP.NET 2.0中的“控件适配架构”,这是一个扩展机制,它使得开发人员能够在不修改原有控件的...

    jquerymobileangular适配器

    总之,jQuery Mobile Angular适配器是一个至关重要的工具,它帮助开发者克服了两个强大框架之间的互操作性挑战,让开发人员可以充分利用两者的优点,创建功能丰富、用户体验优秀的移动应用。在实际开发中,适配器的...

    浏览器适配器

    标题中的“浏览器适配器”就是针对这种情况的一个工具,它的目标是确保应用程序在各种浏览器环境下都能正常运行,特别是针对描述中提到的IE10浏览器的兼容性问题。 在描述中提到的“dopostback”是一个ASP.NET特有...

    数据控件gridview用法演示

    总之,GridView控件是.NET Web Forms开发中的重要工具,熟练掌握其用法对于构建数据驱动的Web应用至关重要。通过实验和实践,学生不仅能学习到数据控件的基本操作,还能提升对面向对象编程的理解和应用能力。

    ASP的GridView控件类

    总的来说,ASP的GridView控件类是一个强大且灵活的数据展示工具,适用于各种数据驱动的Web应用程序。其丰富的功能和易用性使其成为ASP开发者的首选控件之一。通过熟练掌握GridView,开发者可以更高效地构建交互式、...

    cocos2d-x控件示例

    Slider控件是用户调整数值的常用工具,常见于音量控制、进度条等场景。在Cocos2d-x中,Slider由一个滑块和一个轨道组成,用户可以通过拖动滑块来改变其位置,从而改变对应的值。开发者可以设置滑块的最小值、最大值...

    Using CSS Friendly Menu Control Adapter in C# 源码

    `CSS Friendly Menu Control Adapter`是一个非常有用的工具,它允许开发者在C#环境下利用ASP.NET的导航控件,如TreeView和Menu,同时保持对CSS样式的完全控制。这个工具通过将ASP.NET内置控件的HTML输出转换为更符合...

    dhtmlxScheduler日程控件的学习 (1)

    【dhtmlxScheduler日程控件的学习 (1)】 dhtmlxScheduler是一款强大的JavaScript日程管理组件,适用于创建直观、可定制的日历和计划管理应用。这个控件提供了丰富的功能,包括事件添加、编辑、删除,多用户协作,...

    ireport-5.6.0 Jasperreport 报表工具 jar包大全 Two

    【ireport-5.6.0 JasperReport 报表工具 jar包大全 Two】是一个针对Java开发人员的重要资源集合,主要用于创建、设计和管理各种复杂的报表。这个压缩包包含了一系列的jar文件,这些文件是JasperReport库的核心组成...

    dev express dll v9.2.6

    Dev Express是一款知名的软件开发工具包,专注于为.NET Framework和.NET Core提供组件和控件。这个压缩包中的"dll"文件是动态链接库,是Windows操作系统中用于实现特定功能的共享库。DLL文件允许多个程序共享同一段...

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    ASP.NET 2.0的发布,使Web应用程序的开发又前进了一大步。这个新版本增加了大量的新功能,减少了编写常见应用程序所需的代码量。 ASP.NET 2.0新增了50多个新服务器控件,类的数量也翻了一倍,其他许多方面也有很...

    extjs2.1 开发包

    EXTJS 2.1 是一个历史悠久但依然备受推崇的JavaScript框架,主要用于构建富客户端Web应用程序。...无论是初学者还是经验丰富的开发者,都能从这个包中找到所需工具和资源,以实现高效且优雅的Web开发。

    ASP.NET2.0高级编程(第4版)1/6

    第23章 用户控件、服务器控件、  模块和HttpHandler789 23.1 用户控件789 23.1.1 创建用户控件790 23.1.2 与用户控件交互792 23.2 服务器控件794 23.2.1 项目的建立794 23.2.2 控件的属性798 23.2.3 控件的显示799 ...

    angularjs.ui-select.bootstrap4.shim.css:AngularJS UI中用于“ bootstrap”主题的适配器选择Bootstrap v4.x外观

    总之,`angularjs.ui-select.bootstrap4.shim.css`是一个帮助AngularJS UI Select组件适应Bootstrap 4设计的工具。正确地集成和使用这个文件,可以提升应用的视觉一致性,同时保持AngularJS UI Select的强大功能。在...

    走进ASP.NET 2.0

    为了更好地支持CSS样式,ASP.NET 2.0提供了CSS友好适配器,允许开发者使用CSS控制Web Forms控件的外观,提高了网页的样式灵活性。 ### 9. **Web Parts和个人化** Web Parts是可自定义的用户界面组件,用户可以根据...

    构建自己的asp.net3.5网站(完美教程)

    5. **呈现层(UI)**:掌握如何在ASP.NET中设计用户界面,使用服务器控件和CSS样式进行布局和美化。ASP.NET还提供了母版页(Master Pages)功能,方便统一网站的头部和底部。 6. **ASP.NET AJAX**:了解如何利用...

Global site tag (gtag.js) - Google Analytics