Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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 // 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. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //// 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 // 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BamlTreeMap.cs
- WindowsAuthenticationModule.cs
- SessionEndedEventArgs.cs
- HttpChannelFactory.cs
- VisualTreeHelper.cs
- UnsafeNativeMethods.cs
- DataPointer.cs
- Label.cs
- AncillaryOps.cs
- ServiceOperationParameter.cs
- AttributeCollection.cs
- KeyToListMap.cs
- FileDocument.cs
- SyntaxCheck.cs
- CompilerLocalReference.cs
- SurrogateChar.cs
- XmlHierarchyData.cs
- JapaneseLunisolarCalendar.cs
- SqlReferenceCollection.cs
- EditingMode.cs
- DirectoryNotFoundException.cs
- TreeNodeBindingDepthConverter.cs
- SqlComparer.cs
- DataGridTextBoxColumn.cs
- PenContexts.cs
- Nodes.cs
- CompilerLocalReference.cs
- AstNode.cs
- XmlDeclaration.cs
- SspiNegotiationTokenProviderState.cs
- OdbcDataAdapter.cs
- ToolStripGripRenderEventArgs.cs
- SubpageParagraph.cs
- LockRecoveryTask.cs
- OutgoingWebRequestContext.cs
- StreamingContext.cs
- CompModSwitches.cs
- PostBackOptions.cs
- TextProperties.cs
- TypeDependencyAttribute.cs
- ReadOnlyObservableCollection.cs
- AssemblyAttributesGoHere.cs
- AuthorizationSection.cs
- ActivityInstanceReference.cs
- EnumType.cs
- SerialErrors.cs
- HttpGetProtocolImporter.cs
- TextPatternIdentifiers.cs
- HtmlLink.cs
- SpellerHighlightLayer.cs
- GeneralTransform3DCollection.cs
- SparseMemoryStream.cs
- ZipIOBlockManager.cs
- TextUtf8RawTextWriter.cs
- URI.cs
- EmptyImpersonationContext.cs
- CollectionBase.cs
- ListViewSelectEventArgs.cs
- HttpWebResponse.cs
- ValidationPropertyAttribute.cs
- AsymmetricAlgorithm.cs
- WindowsEditBoxRange.cs
- HandleCollector.cs
- WebBrowserNavigatingEventHandler.cs
- SystemSounds.cs
- processwaithandle.cs
- XmlEncodedRawTextWriter.cs
- MailSettingsSection.cs
- DefaultBindingPropertyAttribute.cs
- OleDbSchemaGuid.cs
- path.cs
- TextClipboardData.cs
- InputScopeConverter.cs
- MemberAccessException.cs
- DetailsViewAutoFormat.cs
- NotificationContext.cs
- LogicalExpressionEditor.cs
- ResourceReferenceExpression.cs
- HttpWriter.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- ByteStreamBufferedMessageData.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- BasicHttpMessageSecurity.cs
- Visual3D.cs
- DocumentApplicationJournalEntry.cs
- GCHandleCookieTable.cs
- CaseCqlBlock.cs
- WorkflowMarkupSerializationProvider.cs
- ELinqQueryState.cs
- ModuleElement.cs
- WindowsGrip.cs
- DoubleAnimationClockResource.cs
- DomainUpDown.cs
- FixedSOMTableRow.cs
- ErrorWebPart.cs
- MultiPropertyDescriptorGridEntry.cs
- Header.cs
- Win32Exception.cs
- DesignerActionPropertyItem.cs
- ColumnResult.cs