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
- CustomExpression.cs
- EventsTab.cs
- UITypeEditor.cs
- DataPagerCommandEventArgs.cs
- ProgressBar.cs
- ProfileGroupSettingsCollection.cs
- FixUp.cs
- LocalizedNameDescriptionPair.cs
- QilGenerator.cs
- XmlSchemaValidator.cs
- XsdCachingReader.cs
- SlipBehavior.cs
- FontResourceCache.cs
- AssemblyAttributesGoHere.cs
- Point3DKeyFrameCollection.cs
- PointCollectionValueSerializer.cs
- FileLogRecordHeader.cs
- _ContextAwareResult.cs
- ControlPropertyNameConverter.cs
- GroupJoinQueryOperator.cs
- UpdateProgress.cs
- XsdBuildProvider.cs
- DeclaredTypeValidator.cs
- ScaleTransform.cs
- AudioBase.cs
- WebServiceReceive.cs
- MimeTypePropertyAttribute.cs
- SiteMapDataSourceDesigner.cs
- XmlSchemaAnyAttribute.cs
- EDesignUtil.cs
- Quad.cs
- ProtectedConfigurationSection.cs
- OracleTimeSpan.cs
- StateMachineWorkflow.cs
- GlobalAllocSafeHandle.cs
- AssemblyCacheEntry.cs
- OnOperation.cs
- StreamResourceInfo.cs
- SelectionEditor.cs
- ReliabilityContractAttribute.cs
- Evaluator.cs
- BookmarkScopeInfo.cs
- RowTypeElement.cs
- TokenizerHelper.cs
- KeyValueInternalCollection.cs
- MaterialGroup.cs
- BitmapVisualManager.cs
- IItemContainerGenerator.cs
- CallbackCorrelationInitializer.cs
- SecurityDocument.cs
- RoleServiceManager.cs
- RC2CryptoServiceProvider.cs
- BindingWorker.cs
- GeometryDrawing.cs
- ArgumentNullException.cs
- SQLByte.cs
- ThemeInfoAttribute.cs
- FileLogRecord.cs
- SmiGettersStream.cs
- DataGridLength.cs
- UriWriter.cs
- TableLayoutSettingsTypeConverter.cs
- SqlServer2KCompatibilityAnnotation.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- ConnectionsZoneDesigner.cs
- OdbcError.cs
- CompilationRelaxations.cs
- DocumentViewerConstants.cs
- InternalTypeHelper.cs
- MSG.cs
- Condition.cs
- PopOutPanel.cs
- EventInfo.cs
- RenderCapability.cs
- XamlWriter.cs
- Bits.cs
- CompressEmulationStream.cs
- CmsUtils.cs
- EntryIndex.cs
- ADMembershipUser.cs
- PermissionAttributes.cs
- XmlWhitespace.cs
- CodeMethodInvokeExpression.cs
- StyleSelector.cs
- PopupRoot.cs
- LocationSectionRecord.cs
- CommandID.cs
- AxisAngleRotation3D.cs
- EmptyReadOnlyDictionaryInternal.cs
- PersonalizationAdministration.cs
- DataGridViewControlCollection.cs
- DataKeyCollection.cs
- DeviceSpecific.cs
- TreeViewItemAutomationPeer.cs
- Registry.cs
- WebColorConverter.cs
- TrackingServices.cs
- FormViewUpdateEventArgs.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- JpegBitmapEncoder.cs