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
- TextSpan.cs
- ExpandSegment.cs
- ObjectStateEntry.cs
- PathGeometry.cs
- QueryCreatedEventArgs.cs
- FramingEncoders.cs
- ComplusTypeValidator.cs
- ManagedFilter.cs
- QilXmlReader.cs
- TextBox.cs
- SendMailErrorEventArgs.cs
- SqlMethodCallConverter.cs
- CultureInfoConverter.cs
- ApplicationProxyInternal.cs
- HttpStreamXmlDictionaryReader.cs
- XmlSchemaDatatype.cs
- CircleHotSpot.cs
- ConfigurationValidatorAttribute.cs
- SharedPersonalizationStateInfo.cs
- SaveFileDialog.cs
- CardSpaceException.cs
- DirtyTextRange.cs
- Error.cs
- WorkflowRuntimeSection.cs
- BitVec.cs
- PointConverter.cs
- ToolStripContextMenu.cs
- CodeArrayCreateExpression.cs
- ToolStripControlHost.cs
- SvcMapFileSerializer.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- DataGridViewHitTestInfo.cs
- NeutralResourcesLanguageAttribute.cs
- Executor.cs
- VisualTreeUtils.cs
- AsymmetricAlgorithm.cs
- EndEvent.cs
- StatusBarItem.cs
- DesignRelationCollection.cs
- DataSvcMapFile.cs
- ActivityPreviewDesigner.cs
- AuthenticationSection.cs
- RuleInfoComparer.cs
- BaseProcessProtocolHandler.cs
- ButtonAutomationPeer.cs
- OleServicesContext.cs
- SafeProcessHandle.cs
- SqlInternalConnectionTds.cs
- CharAnimationBase.cs
- ScriptModule.cs
- RegisteredArrayDeclaration.cs
- WindowsImpersonationContext.cs
- CharKeyFrameCollection.cs
- ProvideValueServiceProvider.cs
- ClientProxyGenerator.cs
- QuerySettings.cs
- EditorZone.cs
- WindowShowOrOpenTracker.cs
- TemplateColumn.cs
- Rectangle.cs
- _SslSessionsCache.cs
- SessionState.cs
- JapaneseLunisolarCalendar.cs
- DataMisalignedException.cs
- Operator.cs
- RegisterInfo.cs
- TraceListener.cs
- ConfigurationValue.cs
- ExceptionHelpers.cs
- NullableIntMinMaxAggregationOperator.cs
- CodeTypeReferenceCollection.cs
- InteropEnvironment.cs
- COM2FontConverter.cs
- PagesSection.cs
- TextEditorCopyPaste.cs
- Matrix.cs
- TimeoutTimer.cs
- AccessedThroughPropertyAttribute.cs
- __TransparentProxy.cs
- InvalidateEvent.cs
- AdCreatedEventArgs.cs
- CollectionChangedEventManager.cs
- ResXFileRef.cs
- TextEffect.cs
- KnownTypesHelper.cs
- selecteditemcollection.cs
- webclient.cs
- Update.cs
- CodeDOMProvider.cs
- ListSortDescription.cs
- XMLUtil.cs
- LinqExpressionNormalizer.cs
- SelectManyQueryOperator.cs
- OleDbConnection.cs
- WorkflowMarkupSerializationProvider.cs
- _SSPISessionCache.cs
- OdbcEnvironmentHandle.cs
- ReflectionHelper.cs
- XmlComment.cs
- WindowsAltTab.cs