| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /**
- * Namespace: System.Web.UI.Util
- * Class: DataSourceHelper
- *
- * Author: Gaurav Vaish
- * Maintainer: [email protected]
- * Contact: <[email protected]>, <[email protected]>
- * Status: 10%
- *
- * (C) Gaurav Vaish (2001)
- */
- using System;
- using System.Collections;
- using System.ComponentModel;
- namespace System.Web.Util
- {
- internal class DataSourceHelper
- {
- public static IEnumerable GetResolvedDataSource(object source, string member)
- {
- if(source != null && source is IListSource)
- {
- IListSource src = (IListSource)source;
- IList list = src.GetList();
- if(!src.ContainsListCollection)
- {
- return list;
- }
- if(list != null && list is ITypedList)
- {
- ITypedList tlist = (ITypedList)list;
- PropertyDescriptorCollection pdc = tlist.GetItemProperties(new PropertyDescriptor[0]);
- if(pdc != null && pdc.Count > 0)
- {
- PropertyDescriptor pd = null;
- if(member != null && member.Length > 0)
- {
- pd = pdc.Find(member, true);
- } else
- {
- pd = pdc[0];
- }
- if(pd != null)
- {
- object rv = pd.GetValue(list[0]);
- if(rv != null && rv is IEnumerable)
- {
- return (IEnumerable)rv;
- }
- }
- throw new HttpException(
- HttpRuntime.FormatResourceString("ListSource_Missing_DataMember", member));
- }
- throw new HttpException(
- HttpRuntime.FormatResourceString("ListSource_Without_DataMembers"));
- }
- }
- if(source is IEnumerable)
- {
- return (IEnumerable)source;
- }
- return null;
- }
- }
- }
|