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

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

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

  DataViewManager为一个默认的DataView设置集合,不知这样是否可以理解的好些.

  我们的目的则是将其转化到IEnumerable类型,继续

  DataViewManager实现了ITypedList接口

  我们需要将DataViewManager(即list)转化到ITypedList ,为什么?ITypedList的GetItemProperties方法将帮助你获取DataView数据绑定的数据对象,而非DataView本身属性

  ITypedList的GetItemProperties方法绑定数据的每项属性的PropertyDescriptorCollection集合,

  PropertyDescriptorCollection表示PropertyDescriptor集合,PropertyDescriptor这个类很好玩,等同于属性的说明书,即用了.net的反射技术,大家可以尝试一下,其实以前也用过这个类.下面来看代码片段

          //提供发现可绑定列表架构的功能,其中可用于绑定的属性不同于要绑定到的对象的公共属性
          ITypedList typedList = (ITypedList)list;
          //返回表示用于绑定数据的每项上属性集合
          PropertyDescriptor[] pd = new PropertyDescriptor[0];
          PropertyDescriptorCollection propDescCol =
            typedList.GetItemProperties(pd); //was (null)
  
          //如果属性说明符数目为0
          if (propDescCol.Count == 0)
            throw new Exception("ListSource without DataMembers");

  GetItemProperties方法传入了一个PropertyDescriptor的数组,大家可能注意到了传入的数组为一个空数组,你还可以传入一个空引用

责编:豆豆技术应用

正在加载评论...