2007-08-26

ASP.NET3.5的ListView与CSS Friendly

来源: Cat Chen 作者:Cat Chen 评论 0 条
    之前在写CSS有关文章的时候,我就想写写如何使用ASP.NET控件能够更加CSS Friendly,更轻易实现一些常见的页面布局pattern,然而之后就发现这并非那么轻易的。说起来要让ASP.NET控简变得CSS Friendly很轻易,站长资讯网欢迎您(www.chinahtml.com)直接使用ASP.NET 2.0 CSS Friendly Control Adapters就是了,然而事实并非如此简单。

  CSS Friendly Control Adapters的不足

  首先请答应我对这个CSS Friendly Control Adapters抱怨一下。我第一眼看到它输出的class名称我就觉得很faint了,举一些例子:AspNet-Menu、AspNet-Menu-WithChildren、AspNet-Menu-Leaf。假如你习惯了客户端代码一律使用camel命名法的话,你看到这样的命名就会觉得无法适从,你是要改变原有的命名法来迁就这些控件呢,还是让多种命名法在你的CSS文件中混排呢。假如需要改变这些默认的class命名呢?不好意思,内容来自站长资讯网(www.chinahtml.com)控件自身的CssClass属性已经没有任何作用,站长资讯网欢迎您(www.chinahtml.com)因为控件输出的HTML结构都改变了,中国站长资讯网那些CssClass也就不再对应哪个HTML元素了。因此,假如你需要改变这些class命名,唯一的办法就是直接更改ControlAdapter的源代码,而class命名是以字符串形式硬编码在源代码中的,就算你用搜索替换你还是会害怕替换多了或者替换少了从而引入了更多的麻烦。

  说到源代码,这些ControlAdapter的第二个麻烦也就浮现了——网站必须携带它们的所有源代码,而不仅仅是编译好的dll,而且这些源代码的可修改性并不强。内容来自站长资讯网(www.chinahtml.com)为什么站长资讯网欢迎您(www.chinahtml.com)说可修改性不强?假如你有想过自己写一些ControlAdapter的哈中国站长资讯网,我想你已经参考过现有的那几个ControlAdapter了,你会发现编写ControlAdapter严重依靠于你对该Control本身的理解,不仅仅是对Control公开部分的了解,还需要对Control内在逻辑的深入理解。因此,要么你是Control的作者本身,要么你就细看过Control的源代码,否则不可能写出ControlAdapter,甚至修改已有的都很难。

  因此,CSS Friendly Control Adapters是一个非常之鸡肋的选择,我们不如向前看,看看Microsoft在ASP.NET 3.5中为我们提供了什么。

  ListView以及全新的TemplateControl形式

  ListView是ASP.NET 3.5新引入的一个控件,假如你还没有使用上Orcas,或者没试用过这个控件,那么不妨看看ScottGu的介绍性文章:The asp:ListView control。这篇文章具体说明了如何先设计一个原型页,然后设计LINQ to SQL以便获取数据,在将数据绑定到ListView上面,中国站长资讯网最后还加上DataPager分页。我们不需要看那么多,内容来自站长资讯网(www.chinahtml.com)看ListView那部分就是了,看看声明ListView的代码。

  假如你熟悉之前Atlas提供的Sys.UI.Data.ListView,那么你一定会觉得这两个ListView很相似。v与之前的TemplateControl(例如GridView)不同,ListView不再直接输出容器本身的代码,而提供了一个Template给你自定义容器,你可以在这个Template中自由编写你的容器代码,它可以是<table />,也可以是<ul />或<ol />。之后项目的Template也是答应自定义的,对应<table />的自然是<tr />,而对应<ul />与<ol />的则应该是<li />。因为这些都是你手动编写的HTML代码,所以你可以随意地给它们设置class属性,
共2页: 上一页 1 [2] 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:ASP.NET技巧:DataGrid传统分页方式  
下一篇:从.NET类库代码来看ASP.NET运行模式
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号