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
- ExpandSegmentCollection.cs
- System.Data_BID.cs
- SvcFileManager.cs
- SafeNativeMethods.cs
- VisualProxy.cs
- IList.cs
- NativeBuffer.cs
- TextDecorationCollection.cs
- AspProxy.cs
- MultiSelectRootGridEntry.cs
- COSERVERINFO.cs
- CachedTypeface.cs
- ToggleButtonAutomationPeer.cs
- SimpleApplicationHost.cs
- GeneralTransform3DTo2D.cs
- GlyphRunDrawing.cs
- CachedResourceDictionaryExtension.cs
- ECDsaCng.cs
- FlowLayout.cs
- HtmlElement.cs
- DynamicILGenerator.cs
- ClaimComparer.cs
- ToolStripKeyboardHandlingService.cs
- SqlBooleanizer.cs
- Executor.cs
- ProvideValueServiceProvider.cs
- MobileUITypeEditor.cs
- Function.cs
- IdleTimeoutMonitor.cs
- _AutoWebProxyScriptEngine.cs
- MembershipPasswordException.cs
- InkCanvasSelection.cs
- TraceListener.cs
- SqlCommand.cs
- HitTestParameters3D.cs
- CustomErrorsSection.cs
- TcpSocketManager.cs
- WeakEventTable.cs
- DocumentSchemaValidator.cs
- Guid.cs
- TextBoxAutomationPeer.cs
- DependencyPropertyChangedEventArgs.cs
- wmiutil.cs
- CompositeFontInfo.cs
- CustomLineCap.cs
- SystemIPv4InterfaceProperties.cs
- LineSegment.cs
- SocketInformation.cs
- TextTreeUndoUnit.cs
- RawKeyboardInputReport.cs
- XmlSchemaComplexContentRestriction.cs
- LogLogRecordHeader.cs
- TargetException.cs
- RadioButtonPopupAdapter.cs
- SqlProcedureAttribute.cs
- InputReferenceExpression.cs
- MetricEntry.cs
- Translator.cs
- EntityDataReader.cs
- XslException.cs
- RTLAwareMessageBox.cs
- XmlSubtreeReader.cs
- PeerTransportListenAddressValidatorAttribute.cs
- AuthenticodeSignatureInformation.cs
- UnsettableComboBox.cs
- TransactionContextValidator.cs
- MoveSizeWinEventHandler.cs
- WorkflowInstanceExtensionManager.cs
- VisualTransition.cs
- BamlLocalizableResource.cs
- TextViewElement.cs
- ETagAttribute.cs
- MetadataArtifactLoaderCompositeFile.cs
- SystemFonts.cs
- BlurEffect.cs
- CompiledRegexRunner.cs
- TypeForwardedToAttribute.cs
- QueryExpression.cs
- Pkcs7Signer.cs
- XmlNodeReader.cs
- MsmqIntegrationSecurityElement.cs
- ClientCultureInfo.cs
- EncodingDataItem.cs
- DataGridItemCollection.cs
- IPEndPoint.cs
- DbTransaction.cs
- glyphs.cs
- CodeTypeParameterCollection.cs
- JsonReaderDelegator.cs
- PartitionedDataSource.cs
- ToolboxComponentsCreatedEventArgs.cs
- SerializerDescriptor.cs
- UpdatePanelTriggerCollection.cs
- TemplatedWizardStep.cs
- FtpRequestCacheValidator.cs
- Resources.Designer.cs
- BuildProvider.cs
- RuleSetBrowserDialog.cs
- ClassicBorderDecorator.cs
- HttpEncoderUtility.cs