Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / DataSourceHelper.cs / 1305376 / DataSourceHelper.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Data; internal sealed class DataSourceHelper { private DataSourceHelper() { } internal static IEnumerable GetResolvedDataSource(object dataSource, string dataMember) { if (dataSource == null) return null; IListSource listSource = dataSource as IListSource; if (listSource != null) { IList memberList = listSource.GetList(); if (listSource.ContainsListCollection == false) { // the returned list is itself the list we need to bind to // NOTE: I am ignoring the DataMember parameter... ideally we might have // thrown an exception, but this would mess up design-time usage // where the user may change the data source from a DataSet to a // DataTable. return (IEnumerable)memberList; } if ((memberList != null) && (memberList is ITypedList)) { ITypedList typedMemberList = (ITypedList)memberList; PropertyDescriptorCollection propDescs = typedMemberList.GetItemProperties(new PropertyDescriptor[0]); if ((propDescs != null) && (propDescs.Count != 0)) { PropertyDescriptor listProperty = null; if (String.IsNullOrEmpty(dataMember)) { listProperty = propDescs[0]; } else { listProperty = propDescs.Find(dataMember, true); } if (listProperty != null) { object listRow = memberList[0]; object list = listProperty.GetValue(listRow); if ((list != null) && (list is IEnumerable)) { return (IEnumerable)list; } } throw new HttpException(SR.GetString(SR.ListSource_Missing_DataMember, dataMember)); } else { throw new HttpException(SR.GetString(SR.ListSource_Without_DataMembers)); } } } if (dataSource is IEnumerable) { return (IEnumerable)dataSource; } return null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StoryFragments.cs
- SecurityDocument.cs
- AttributeExtensions.cs
- IISMapPath.cs
- RangeBase.cs
- ActivityDesignerHelper.cs
- FormViewDeleteEventArgs.cs
- HitTestFilterBehavior.cs
- tibetanshape.cs
- StringStorage.cs
- DataService.cs
- TripleDES.cs
- EmbeddedMailObject.cs
- SocketElement.cs
- ConditionValidator.cs
- CompositeCollectionView.cs
- HandledEventArgs.cs
- TimeoutValidationAttribute.cs
- PasswordPropertyTextAttribute.cs
- MenuStrip.cs
- TrackingExtract.cs
- RoutedPropertyChangedEventArgs.cs
- EventLogEntryCollection.cs
- ContentElement.cs
- WindowsListViewItemStartMenu.cs
- RemotingConfiguration.cs
- XamlTypeMapper.cs
- ErrorProvider.cs
- ComponentChangingEvent.cs
- ResourceExpression.cs
- TextFragmentEngine.cs
- XXXOnTypeBuilderInstantiation.cs
- _ShellExpression.cs
- XhtmlBasicListAdapter.cs
- CryptoApi.cs
- MetaModel.cs
- DeferredSelectedIndexReference.cs
- NameTable.cs
- MessageQueueException.cs
- ProcessInfo.cs
- UInt64Converter.cs
- X509Certificate.cs
- WebPartCatalogCloseVerb.cs
- QueryAccessibilityHelpEvent.cs
- ValueTable.cs
- AsymmetricKeyExchangeFormatter.cs
- Int16.cs
- Parameter.cs
- TitleStyle.cs
- SortQuery.cs
- DbDataReader.cs
- DropDownList.cs
- XmlSignatureManifest.cs
- KeyNotFoundException.cs
- ProxyElement.cs
- HashAlgorithm.cs
- OrderingInfo.cs
- UnitySerializationHolder.cs
- Activity.cs
- EntityDataSource.cs
- Parsers.cs
- Axis.cs
- GetPageCompletedEventArgs.cs
- BamlBinaryReader.cs
- FastPropertyAccessor.cs
- SourceFileInfo.cs
- Duration.cs
- DispatcherTimer.cs
- CodeTypeConstructor.cs
- MailBnfHelper.cs
- PreparingEnlistment.cs
- SEHException.cs
- GeometryModel3D.cs
- Authorization.cs
- XmlAtomicValue.cs
- MediaTimeline.cs
- XmlSchemaInclude.cs
- UnauthorizedWebPart.cs
- XamlWriter.cs
- GridViewEditEventArgs.cs
- SqlResolver.cs
- TransformPattern.cs
- UserMapPath.cs
- Encoder.cs
- HierarchicalDataBoundControlAdapter.cs
- ConnectionPoolManager.cs
- LiteralDesigner.cs
- Scheduler.cs
- CacheOutputQuery.cs
- GridProviderWrapper.cs
- DesignConnection.cs
- mactripleDES.cs
- DBCommandBuilder.cs
- QuaternionKeyFrameCollection.cs
- ImageField.cs
- IndexedWhereQueryOperator.cs
- uribuilder.cs
- StringUtil.cs
- XmlElementList.cs
- BamlLocalizableResourceKey.cs