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
- shaperfactoryquerycachekey.cs
- EnvelopedPkcs7.cs
- Keywords.cs
- BamlRecordReader.cs
- IPipelineRuntime.cs
- String.cs
- DataGridTextBoxColumn.cs
- SocketAddress.cs
- RectIndependentAnimationStorage.cs
- Triplet.cs
- SplitterPanel.cs
- PrintDialog.cs
- linebase.cs
- Tablet.cs
- XmlSchemaSimpleContent.cs
- PrtCap_Builder.cs
- SqlBinder.cs
- ToolStripItemImageRenderEventArgs.cs
- UnmanagedMarshal.cs
- CounterSample.cs
- CacheEntry.cs
- StateMachineWorkflow.cs
- Serializer.cs
- ModelPropertyCollectionImpl.cs
- ServicePointManager.cs
- SyntaxCheck.cs
- ArrangedElementCollection.cs
- DataSvcMapFileSerializer.cs
- IpcChannelHelper.cs
- SHA1CryptoServiceProvider.cs
- DocumentViewer.cs
- FormViewInsertEventArgs.cs
- XmlAggregates.cs
- SourceInterpreter.cs
- TreeNodeStyle.cs
- FontFamily.cs
- BooleanFunctions.cs
- SettingsPropertyWrongTypeException.cs
- Preprocessor.cs
- JsonStringDataContract.cs
- HttpAsyncResult.cs
- HttpResponseHeader.cs
- WindowsGrip.cs
- DataTableReaderListener.cs
- DesignerSerializationManager.cs
- OverrideMode.cs
- NetTcpBindingCollectionElement.cs
- Assembly.cs
- GeneralTransform3DGroup.cs
- ImageClickEventArgs.cs
- ConcatQueryOperator.cs
- BinaryObjectReader.cs
- OuterGlowBitmapEffect.cs
- mansign.cs
- IdentityHolder.cs
- DbException.cs
- GeneralTransform.cs
- ContextProperty.cs
- TaskExtensions.cs
- ParserContext.cs
- SiblingIterators.cs
- SimpleHandlerBuildProvider.cs
- ComponentCommands.cs
- WorkflowInlining.cs
- HttpCacheVary.cs
- XmlSchemaSimpleTypeList.cs
- ActivationArguments.cs
- TreeBuilderBamlTranslator.cs
- CopyOnWriteList.cs
- Interlocked.cs
- SecurityElement.cs
- OracleEncoding.cs
- GZipUtils.cs
- MethodBuilderInstantiation.cs
- XmlDocumentSchema.cs
- XmlDigitalSignatureProcessor.cs
- ProtocolElement.cs
- ProfileSettings.cs
- WinFormsSecurity.cs
- DefaultProxySection.cs
- RegisteredArrayDeclaration.cs
- HiddenFieldPageStatePersister.cs
- PropertyGeneratedEventArgs.cs
- DomainConstraint.cs
- DocobjHost.cs
- FlowDocumentPageViewerAutomationPeer.cs
- InternalRelationshipCollection.cs
- VisualStyleElement.cs
- StateBag.cs
- CollectionConverter.cs
- RowBinding.cs
- WebPartConnectionsDisconnectVerb.cs
- FilterableData.cs
- AutomationPropertyInfo.cs
- MailWebEventProvider.cs
- SamlSerializer.cs
- RequestBringIntoViewEventArgs.cs
- CodeCatchClauseCollection.cs
- ClosureBinding.cs
- KeyPullup.cs