ASP.NET控件开发基础(18)

http://tech.ddvip.com   2007年09月02日    社区交流

内容摘要:本篇继续上篇的讨论,可能大家已经在使用asp.net2.0了,DataSource属性不再使用,而是跟数据源控件搭配使用.现在讨论的绑定技术都是基于1.1版本,先熟悉一下,本质上是一样的,这样一步步的学习.对以后绝对有帮助.因为当你使用数据源控件,只需要设置一个DataSourceID,方便的同时你是否知道数据源控件帮你做了什么事情,如果你想觉的够用了,可以不用了解,但我相信你一定会有需求.

  这个辅助类判断太多,刚看会看晕掉的,所以在if判断这里把代码折叠起来,有助于理解

  这里有几个类可能没见过,我们把关键用到的类一一列出来,希望大家查查MSDN

  1.IListSource 向对象提供返回可以绑定到数据源列表的功能

  2.ITypedList  提供发现可绑定列表架构的功能,其中可用于绑定的属性不同于要绑定到的对象的公共属性

  3.PropertyDescriptor 提供类上的属性的抽象化

  4.PropertyDescriptorCollection 表示 PropertyDescriptor 对象的集合

  下面开始

  (1).首先如果传入的数据源类型是IEnumerable的话,很好,可以直接返回

      if (dataSource is IEnumerable)
      {
        return (IEnumerable)dataSource;
      }

  (2).转化实现IListSource接口的类

  虽然传入的类型非IEnumerable,如DataSet类实现了IListSource接口,其目的就是使用此接口的GetList方法返回一个IList(IList继承IEnumerable,可以进行数据绑定),大家可以参考MSDN的原话

        IList list = null;
        IListSource listSource = (IListSource)dataSource;
        list = listSource.GetList();

  假设传入的是DataSet,list将会得到System.Data.DataViewManager集合

  DataViewManager是什么呢?为默认DataTable默认的DataViewSettingCollection

  DataViewSettingCollection是什么呢?表示DataTable的DataViewSetting的集合

  DataViewSetting是什么呢?表示从 DataViewManager 创建的 DataView 的 的默认设置

  上面的我们不熟,DataView大家应该熟悉,其可以对数据进行排序,过滤等

责编:豆豆技术应用

正在加载评论...