Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / DataSourceHelper.cs / 1 / 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; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpClientCertificate.cs
- EraserBehavior.cs
- ExpressionBuilder.cs
- DictionaryEntry.cs
- WindowsFont.cs
- CodeAccessSecurityEngine.cs
- MetadataUtil.cs
- D3DImage.cs
- NGCUIElementCollectionSerializerAsync.cs
- JumpPath.cs
- _ServiceNameStore.cs
- XPathDocumentBuilder.cs
- DataPagerCommandEventArgs.cs
- ConfigsHelper.cs
- InstanceKeyView.cs
- Material.cs
- TriggerBase.cs
- HttpModuleActionCollection.cs
- DbSourceParameterCollection.cs
- LookupNode.cs
- DrawingCollection.cs
- Object.cs
- MsmqIntegrationReceiveParameters.cs
- IsolatedStorageFile.cs
- EntityWithKeyStrategy.cs
- PickDesigner.xaml.cs
- RelationshipFixer.cs
- InvariantComparer.cs
- TagNameToTypeMapper.cs
- Quad.cs
- PrinterResolution.cs
- PageThemeCodeDomTreeGenerator.cs
- WsatServiceCertificate.cs
- SecurityKeyIdentifierClause.cs
- EntityViewGenerationConstants.cs
- SurrogateSelector.cs
- FileIOPermission.cs
- NativeMethods.cs
- MenuItemBinding.cs
- ParseHttpDate.cs
- PackagingUtilities.cs
- LogRecordSequence.cs
- EventProxy.cs
- Run.cs
- AdRotatorDesigner.cs
- FormattedText.cs
- ping.cs
- Point3DCollectionConverter.cs
- HierarchicalDataSourceIDConverter.cs
- UnmanagedMemoryStreamWrapper.cs
- DnsCache.cs
- DesignerAttributeInfo.cs
- DocobjHost.cs
- TitleStyle.cs
- BaseTreeIterator.cs
- SoapFaultCodes.cs
- SvcMapFileLoader.cs
- ReferenceService.cs
- ObjectListItem.cs
- ValidatorCollection.cs
- PolyLineSegment.cs
- COM2ComponentEditor.cs
- COM2IPerPropertyBrowsingHandler.cs
- UnmanagedMarshal.cs
- TableLayoutSettingsTypeConverter.cs
- MemberProjectedSlot.cs
- SourceFilter.cs
- EpmHelper.cs
- IncrementalReadDecoders.cs
- ListBase.cs
- DiscoveryClientProtocol.cs
- VisualTreeHelper.cs
- SelectionRangeConverter.cs
- SoapObjectWriter.cs
- UrlMapping.cs
- UnsafeNativeMethods.cs
- RoutingBehavior.cs
- GeometryConverter.cs
- CharacterMetrics.cs
- EntityDataSourceValidationException.cs
- Transactions.cs
- RootProfilePropertySettingsCollection.cs
- IdentityValidationException.cs
- XPathException.cs
- MetadataItemEmitter.cs
- Evidence.cs
- ExtenderProvidedPropertyAttribute.cs
- RootDesignerSerializerAttribute.cs
- DelegatingTypeDescriptionProvider.cs
- odbcmetadatacolumnnames.cs
- PropertyGrid.cs
- CustomBinding.cs
- Documentation.cs
- Graph.cs
- Point3DCollectionValueSerializer.cs
- BitmapEffectCollection.cs
- Page.cs
- prompt.cs
- ResourceContainer.cs
- ObjectHelper.cs