Code:
/ FX-1434 / FX-1434 / 1.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
- FilteredDataSetHelper.cs
- UserControlParser.cs
- ListItemParagraph.cs
- DbXmlEnabledProviderManifest.cs
- UnitySerializationHolder.cs
- XmlDataProvider.cs
- EventArgs.cs
- EntityClientCacheEntry.cs
- MimeObjectFactory.cs
- WindowsStatusBar.cs
- SignatureSummaryDialog.cs
- CodeSnippetCompileUnit.cs
- ListBoxItemAutomationPeer.cs
- ElementHostPropertyMap.cs
- WebPartZoneBase.cs
- ScrollBarRenderer.cs
- DemultiplexingClientMessageFormatter.cs
- WebDescriptionAttribute.cs
- MonthCalendarDesigner.cs
- SchemaType.cs
- SQLDecimal.cs
- ListManagerBindingsCollection.cs
- FormatVersion.cs
- ParameterToken.cs
- DbTypeMap.cs
- CallSiteHelpers.cs
- ArglessEventHandlerProxy.cs
- HostedElements.cs
- _NegoState.cs
- Point.cs
- RemoteEndpointMessageProperty.cs
- TraceXPathNavigator.cs
- SoapCodeExporter.cs
- Color.cs
- MultiPageTextView.cs
- TextInfo.cs
- Decimal.cs
- PropertyDescriptorCollection.cs
- GreenMethods.cs
- TypedServiceOperationListItem.cs
- path.cs
- CfgSemanticTag.cs
- CodeMethodMap.cs
- SQLDoubleStorage.cs
- EntityViewGenerationConstants.cs
- ContextMarshalException.cs
- DataGridViewColumnConverter.cs
- ExecutedRoutedEventArgs.cs
- ColumnCollection.cs
- _NestedMultipleAsyncResult.cs
- Exceptions.cs
- AnnotationResource.cs
- CollectionsUtil.cs
- SqlConnectionHelper.cs
- XmlSchemaGroup.cs
- SmtpCommands.cs
- InstanceStoreQueryResult.cs
- BrowserCapabilitiesFactoryBase.cs
- Sequence.cs
- HostingEnvironmentException.cs
- FixedSOMFixedBlock.cs
- Marshal.cs
- OpenFileDialog.cs
- CriticalExceptions.cs
- TagMapCollection.cs
- QueueProcessor.cs
- InvariantComparer.cs
- NamespaceInfo.cs
- InheritablePropertyChangeInfo.cs
- TargetException.cs
- PenLineJoinValidation.cs
- CodeParameterDeclarationExpression.cs
- FrameworkContentElementAutomationPeer.cs
- TryCatchDesigner.xaml.cs
- CustomCredentialPolicy.cs
- HtmlInputText.cs
- ImageAttributes.cs
- SerializationAttributes.cs
- TdsParserStateObject.cs
- SerialStream.cs
- SmiEventSink_DeferedProcessing.cs
- UniqueIdentifierService.cs
- ContextMenuAutomationPeer.cs
- VisualStyleElement.cs
- UrlMapping.cs
- ProfileSettings.cs
- OpCellTreeNode.cs
- Geometry3D.cs
- WebPartPersonalization.cs
- CodeValidator.cs
- DataObjectEventArgs.cs
- ResXBuildProvider.cs
- ErrorEventArgs.cs
- ConfigXmlCDataSection.cs
- RawStylusInputCustomDataList.cs
- HitTestWithPointDrawingContextWalker.cs
- WindowsPen.cs
- XmlEnumAttribute.cs
- QuerySettings.cs
- DataContext.cs