您现在的位置: 捷凌网安 >> 服务器 >> WEB开 发 >> ASP.NET >> 正文
何时使用DataGrid、DataList 或Repeater

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-4-17 8:46:40

    返回页首
    研究 DataGrid Web 控件
    DataGrid Web 控件是这三个数据 Web 控件中功能最多的,但是在自定义控件生成的实际 HTML 标记时,它又是最不灵活的。 呈现的 HTML 标记中的这种不灵活性,是由于 DataGrid 是设计用于使用 HTML <table> 以表格形式显示数据所造成的。 因此,对于每一条绑定到 DataGrid 的记录,都会创建一个单独的表行(<tr>),对于要显示的记录中的每一个字段,都会创建一个单独的表列(<td>)。

    DataGrid 提供了许多功能,可极大地提高要显示的数据的可用性。 例如,把 DataGrid 的 AllowSorting 属性设置为 True 并添加一点源代码,开发人员就可以把一个普通的 DataGrid 变成一个其数据可以由最终用户排序的 DataGrid。 另外,再增加一点工作量,开发人员就能增强 DataGrid 的功能以允许数据分页或数据的内联编辑。 这些功能明显增强了 DataGrid 的可用性。

    除了在可用性方面得分很高,DataGrid 还提供了很短的开发时间。 要使用 DataGrid 开始在 ASP.NET Web 页面中显示数据,只需要把 DataGrid 添加到 Web 页面中并编写两行必要的代码: 第一行把数据绑定到 DataGrid 的 DataSource,第二行调用 DataGrid 的 DataBind() 方法。 显然,随着添加到 DataGrid 中的功能数量的增加,开发时间也增加了,但这只是把开发时间和其他数据 Web 控件进行比较。 假设您要允许对 Repeater 显示的数据进行排序。 添加这样的功能是一定可能的,但是与用 DataGrid 完成同样的操作相比,这需要明显多很多的时间和精力。

    尽管 DataGrid 具有良好的可用性和开发时间得分,但是这个控件有两个固有的缺点。 第一,正如前面所谈到的,DataGrid 在对所呈现的 HTML 标记进行自定义方面的功能很有限。 是的,您可以自定义 DataGrid 的不同行和列的字体、颜色和边框,但是事实仍然是,当 DataGrid 显示数据时,结果将是一个 HTML <table>,DataSource 中的每一条记录都对应其中一个 <tr>,每一个字段都对应其中一个 <td>。

    具体地说,DataGrid 中的每一列都是一个从 DataGridColumn 类中派生的类实例。 有五个内置的 DataGrid 列类型:

    BoundColumn

    ButtonColumn

    EdITColumn

    HyperLinkColumn

    TemplateColumn


    每一个列类型都提供数据或提供某种允许用户和 DataGrid 进行交互的接口。 例如,BoundColumn 以纯文本显示 DataSource 字段的值,而 HyperLinkColumn 则会显示一个超级链接,其文字和 URL 部分可能是 DataSource 字段。 除了这些内置的列类型,通过创建 DataGridColumn 类的派生类,还可以创建自定义 DataGrid 列类型。 (有关创建一个用于扩展 BoundColumn 功能以限制显示字符数的列的示例,请参阅 Creating a Custom DataGridColumn Class。)

    有了这么多的 DataGrid 列类型,可能就不理解为什么 DataGrid 呈现的 HTML 标记不能进行高度自定义了。 要知道,虽然每一个 DataGrid 列类型在呈现时生成不同的 HTML,但是每一列都包含在一组 <td> 标记中,每一行都包含在一组 <tr> 标记中。 因此,即使可以用 TemplateColumn 自定义每一行的特定列的 HTML 输出,而 DataGrid 仍然呈现为 HTML <table>,其中每一行使用一个 <tr>,每一列使用一个 <td> 。 DataGrid 的这种限制禁止了更多具有创造性的数据显示。 例如,如果要在每一表行中显示五条记录,就不能使用 DataGrid,必须使用DataList 或 Repeater。 另外,如果要在除 <table> 之外的 HTML 标记中显示数据,很遗憾,就不能使用 DataGrid 了。

上一页  [1] [2] [3] [4] 下一页

  • 上一篇文章:

  • 下一篇文章:
  •  
    最进更新
    普通文章foxpro 更新源表05-05
    普通文章foxpro 让视图与数据源相连05-05
    普通文章foxpro 机动查询和数据输入05-05
    普通文章foxpro 多个本地数据05-05
    普通文章foxpro 维护源表05-05
    普通文章Oracle 10g Release2新功能之05-05
    普通文章将Oracle 10g内置的安全特性05-05
    普通文章ACCESS 2003 建立数据库视频05-05
    普通文章三种SQL分页法效率分析05-05
    普通文章优化MySQL数据库查询的三种方05-05
     
    推荐文章
    推荐文章教你怎样在MySQL中提高全文搜05-05
    推荐文章SQL Server中数据导入导出三05-05
    推荐文章缓冲技术提高JSP程序的性能和04-17
    推荐文章asp去除HTML标记的三个实用函04-17
    推荐文章何时使用DataGrid、DataList04-17
    推荐文章MySQL存储过程示例04-14
    推荐文章华硕搭建Exchange2007企业邮03-14
    推荐文章升级Win 2003到Windows 200803-14
    推荐文章windows Server 2003 搭建域03-14
    推荐文章服务器成为IT中心的6个理由03-11
     
    热点文章 
    普通文章SQL Server 2008分析服务概览05-01
    普通文章Dlink路由器VPN设置04-29
    推荐文章缓冲技术提高JSP程序的性能和04-17
    普通文章教你优化你的ASP程序04-17
    推荐文章asp去除HTML标记的三个实用函04-17
    普通文章ASP添加验证码的解决方法04-17
    推荐文章何时使用DataGrid、DataList04-17
    普通文章Asp.net中禁止用户多次登录04-17
    普通文章MySQL之表结构修改04-14
    推荐文章MySQL存储过程示例04-14

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号