在ASP.NET 2.0中,引入了DataSource系列控件,扔一个到页面上并且选择性的配置好SELECT/UPDATE/INSERT/DELETE对应的操作,它就能够和数据空间无缝合作自动处理查询与更新,并且提供分页、排序等支持。

有一些ASP.NET 1.x的程序员,并不喜欢使用DataSource控件,觉得还是按找1.x的写法在Page_Load里面设定数据控件的DataSource属性然后执行DataBind好,但实际上2.0的数据控件为DataSource控件做了不少优化所以应该尽量使用DataSource控件。我在使用2.0的过程中DataSource控件和手动DataBind都尝试过了,并且借助Reflector分析.NET自带控件的代码,发现了其中的一些差异。

首先要说的是,数据控件对于是否使用DataSource控件是非常敏感的,很多操作数据控件都会检查自己的DataSourceID属性是否为空,如果不为空则很多事情都能够配合DataSource控件自动化完成,如果为空则通过事件通知用户需要手动完成一些操作。

例如GridView的分页,在使用DataSource控件的时候是能够自动运作的,在翻页时GridView会自动将PageIndex设置为GridViewPageEventArgs.NewPageIndex,同时设置RequiresDataBinding为true,接下来的事情就如魔术般自动发生——GridView会重新执行DataBind,这时候它会懂得自己去找DataSource控件获取DataSourceView,然后从DataSourceView中获取本页数据并进入创建子控件环节。如果你提供给DataSource控件的SELECT方法本身就支持通过传递参数选择仅获取某一页的数据,那么DataSource控件就懂得仅获取GridView所需页的数据以及总页数。

但如果没有DataSource控件,只是指定DataSource并且DataBind,那就会提示GridView未设置OnPageIndexChanging事件,其实意思就是你必须自己手动处理这个事件。对于DataSource从来都是整个GridView显示的数据这种情况来说,自己添加一个OnPageIndexChanging事件并在其中手动更改PageIndex属性和重新DataBind就可以解决问题了。但如果你想优化SELECT方法为仅获取当前页的数据,那就没办法了,因为你无法手动设置GridView的PageCount属性。

转载于:https://www.cnblogs.com/cathsfz/archive/2006/10/22/536463.html

ASP.NET 2.0 中的 DataSource 系列控件相关推荐

  1. 在ASP.NET 2.0中操作数据教程系列

    在ASP.NET 2.0中操作数据教程系列 Scott Mitchell最近完成了为 www.asp.net 网站撰写的<在ASP.NET 2.0中操作数据 (Working with Data ...

  2. ASP.NET 2.0 的数据源、数据绑定控件概述与区别

    一.Render UI 1 GridView GridView 控件用来在表中显示数据源的值.每列表示一个字段,而每行表示一条记录.GridView 控件支持下面的功能: 绑定至数据源控件,如 Sql ...

  3. ASP.NET 2.0 解决了 Code-Behind 需要控件声明同步的问题

    这显然是一个非常明智而且很早就应该实现的做法,因为已经在HTML中声明为runat="server"的控件,就应该算是声明过,还要在code-behind中同步的用C#代码再声明一 ...

  4. 测试ASP.NET 2.0中Gridview控件高级技巧

    ASP.NET 2.0中,新增加的gridview控件的确十分强大,弥补了在asp.net 1.1中,使用datagrid控件时的不足之处.因为在asp.net 1.1中,在使用datagrid时,很 ...

  5. ASP.NET 2.0中使用Gridview控件的高级技巧

    ASP.NET 2.0中,新增加的gridview控件的确十分强大,弥补了在asp.net 1.1中,使用datagrid控件时的不足之处.因为在asp.net 1.1中,在使用datagrid时,很 ...

  6. ASP.NET2.0的multiview和wizard控件

    在asp.net 1.1中,如果要做一个具有向导式的应用程序,是比较麻烦的.所谓向导式应用,就是说比如一个注册用户的应用,是需要若干步完成的,用户填完某一步的表单后,可以点"下一步" ...

  7. [翻译]在Asp.net 2.0中操作数据::母板页和站点导航

    在Asp.net 2.0中操作数据::母板页和站点导航 英文原文 |  下载示例代码(C#)  |  翻译进度  |  英文教程目录 导言 通常,用户友好的个性化站点都有着一致的,站点统一的页面布局和 ...

  8. asp.net 2.0中一次性更新所有GRIDVIEW的记录

    在asp.net 2.0中,gridview控件是十分不错的控件.有的时候,可能一个GRIDVIEW控件中 的各行都是文本框,如何一次性更新所有修改过的记录呢?有两种方法,一种是使用sqldataso ...

  9. ASP.NET 2.0 中的新增安全功能

    发布日期: 8/26/2004 | 更新日期: 8/26/2004 Stephen Walther Microsoft Corporation 适用于: Microsoft ASP.NET 2.0 M ...

最新文章

  1. ECLIPSE 调试F8-------运行到下一断点处 F5-------STEP INTO F6-------STEP OVER
  2. Http 面试知识点
  3. sysbench mysql oltp_用sysbench进行数据库OLTP基准测试
  4. python 类和对象_Python零基础入门学习33:类与面向对象编程:类的继承
  5. 代码也浪漫——Python烟花秀
  6. 信息处理工具计算机.ppt,第二课_计算机信息处理工具讲述.ppt
  7. error500java_错误 500 java.lang.NoClassDefFoundError: com/lowagie/text/pdf/FontMapper
  8. 《统计学》笔记:第2章 数据的搜集
  9. Java编写五线谱上的音符_记住五线谱上音符的方法
  10. 51单片机dds信号发生器 扫频 c语言,基于DDS正弦信号发生器设计.doc
  11. 伪终端设备ttySx/ttyx/ptyMN/ttyMN/ptmx/(pts/x)
  12. 元数据编码和传输标准(METS)
  13. 2-14-Multiple Exemplars-based Hallucination for Face Super-resolution and Editing(ACCV2020)
  14. 【sql server】已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行 解决方法总结
  15. 计算机主板 辐射,一直被忽视!电脑电磁辐射危害及机箱选择
  16. 闲人闲谈PS之二十一——SAP自定义程序增加附件上传下载功能
  17. 网络空间搜索FOFA
  18. 苹果报告问题_苹果或因5G价格阉割iPhone 12电池规格,续航堪忧
  19. vue利用CodeMirrorr+json-lint实现可编辑可自动格式化的Json-Editor组件
  20. 基于ART-PI ALIENTEK 4342 RGBLCD的touchgfx在rt-studio上的使用

热门文章

  1. 取出响应头中包含多个set-cookie的值
  2. Linux下内存泄露工具
  3. 11-对象的常用方法
  4. 深度学习在美图个性化推荐的应用实践
  5. Java中泛型Class T, T与Class ?
  6. JVM 参数使用总结
  7. Dojo 如何测试 widget 1
  8. spring boot与spring mvc的区别是什么?
  9. 【更新】PPT管理控件Aspose.Slides V17.5发布 | 附下载
  10. Map接口与学习系列(一)