Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DoubleCollectionConverter.cs
- TextRenderer.cs
- sqlstateclientmanager.cs
- UrlRoutingHandler.cs
- DeferredElementTreeState.cs
- selecteditemcollection.cs
- DataRowComparer.cs
- ServiceDescriptionReflector.cs
- DataError.cs
- SignatureHelper.cs
- DataGridViewColumnCollection.cs
- SqlExpressionNullability.cs
- WpfKnownType.cs
- PictureBox.cs
- Dispatcher.cs
- SerializationInfo.cs
- NamedObject.cs
- EndEvent.cs
- TreeNodeClickEventArgs.cs
- EventBuilder.cs
- MultiTouchSystemGestureLogic.cs
- ArrayList.cs
- WebEventTraceProvider.cs
- TableCellCollection.cs
- ConfigurationManagerInternalFactory.cs
- GeneralTransformCollection.cs
- X509SubjectKeyIdentifierClause.cs
- SignerInfo.cs
- MessagePropertyVariants.cs
- RequestCacheManager.cs
- AxImporter.cs
- FloatUtil.cs
- Schedule.cs
- validation.cs
- DocumentStream.cs
- ConfigurationSchemaErrors.cs
- SrgsRulesCollection.cs
- DBCommand.cs
- BinaryParser.cs
- TreeNodeBinding.cs
- DataSpaceManager.cs
- PageClientProxyGenerator.cs
- IResourceProvider.cs
- codemethodreferenceexpression.cs
- BaseDataListActionList.cs
- UnhandledExceptionEventArgs.cs
- ThreadSafeList.cs
- PersonalizableTypeEntry.cs
- TextViewBase.cs
- StructuredType.cs
- TextSelectionHighlightLayer.cs
- DefaultPropertyAttribute.cs
- TwoPhaseCommit.cs
- TableLayoutColumnStyleCollection.cs
- OleDbDataReader.cs
- ToolBarDesigner.cs
- Exceptions.cs
- DataBoundControl.cs
- HMACSHA256.cs
- ApplicationFileParser.cs
- PerfCounters.cs
- NativeMethods.cs
- DetailsViewUpdateEventArgs.cs
- StrongNameHelpers.cs
- CallContext.cs
- BamlResourceSerializer.cs
- ConfigXmlSignificantWhitespace.cs
- MemberPath.cs
- XmlDomTextWriter.cs
- XmlKeywords.cs
- StoreConnection.cs
- DefaultMemberAttribute.cs
- SelectionListComponentEditor.cs
- VerificationAttribute.cs
- MsdtcClusterUtils.cs
- SymbolPair.cs
- QfeChecker.cs
- TypeBinaryExpression.cs
- DiscoveryOperationContext.cs
- XPathNodeList.cs
- Console.cs
- StringComparer.cs
- DesignerTransaction.cs
- IntranetCredentialPolicy.cs
- WebServiceResponseDesigner.cs
- TracingConnectionListener.cs
- Grant.cs
- SettingsSavedEventArgs.cs
- UDPClient.cs
- NullableFloatMinMaxAggregationOperator.cs
- TableLayoutCellPaintEventArgs.cs
- AgileSafeNativeMemoryHandle.cs
- TrackingLocation.cs
- IfAction.cs
- UnlockCardRequest.cs
- DataGridState.cs
- PrintPreviewGraphics.cs
- DeploymentExceptionMapper.cs
- EndpointInfoCollection.cs
- MessagePropertyVariants.cs