Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / 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.
//------------------------------------------------------------------------------
//
// 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
- MessageContractImporter.cs
- IResourceProvider.cs
- ProcessThread.cs
- Matrix3DConverter.cs
- SplineKeyFrames.cs
- ProfilePropertyMetadata.cs
- Claim.cs
- DetailsViewPagerRow.cs
- PrintPreviewGraphics.cs
- VSWCFServiceContractGenerator.cs
- TdsParserStateObject.cs
- SiteMapNode.cs
- loginstatus.cs
- DataProtection.cs
- SecurityAlgorithmSuite.cs
- ComponentEditorForm.cs
- ResXBuildProvider.cs
- OracleDataReader.cs
- TextDecorationUnitValidation.cs
- SmtpNegotiateAuthenticationModule.cs
- StandardOleMarshalObject.cs
- BaseComponentEditor.cs
- HttpStreamMessageEncoderFactory.cs
- StorageInfo.cs
- SettingsAttributeDictionary.cs
- EntityClassGenerator.cs
- EdmError.cs
- BitmapData.cs
- TextTreeTextBlock.cs
- XmlUtil.cs
- DataGridViewCellPaintingEventArgs.cs
- ScriptRegistrationManager.cs
- StrokeCollectionConverter.cs
- MetadataItemEmitter.cs
- RequestQueue.cs
- KerberosReceiverSecurityToken.cs
- TableRow.cs
- ServiceNameCollection.cs
- MetadataWorkspace.cs
- Image.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TreeViewBindingsEditorForm.cs
- DiscardableAttribute.cs
- ArrayElementGridEntry.cs
- HtmlControl.cs
- CapabilitiesSection.cs
- CompiledIdentityConstraint.cs
- RegexRunner.cs
- ServiceManager.cs
- Comparer.cs
- HideDisabledControlAdapter.cs
- TitleStyle.cs
- GenerateTemporaryTargetAssembly.cs
- WebPartConnectionsConnectVerb.cs
- TriggerActionCollection.cs
- PrintDocument.cs
- BaseTemplateBuildProvider.cs
- BooleanProjectedSlot.cs
- DateTimeUtil.cs
- DesignerCapabilities.cs
- Propagator.Evaluator.cs
- SqlComparer.cs
- BinaryEditor.cs
- ColorConverter.cs
- LinqDataSourceEditData.cs
- SafeUserTokenHandle.cs
- XmlAnyElementAttribute.cs
- Stream.cs
- HtmlInputSubmit.cs
- RemoteWebConfigurationHostStream.cs
- XmlSerializationReader.cs
- OleTxTransactionInfo.cs
- SessionStateItemCollection.cs
- ParameterToken.cs
- TransformerConfigurationWizardBase.cs
- VersionedStream.cs
- GridLength.cs
- CodeDOMProvider.cs
- TraceListeners.cs
- TypeToken.cs
- securitycriticaldataformultiplegetandset.cs
- cryptoapiTransform.cs
- AnnotationComponentManager.cs
- WCFBuildProvider.cs
- StringResourceManager.cs
- SelectionPatternIdentifiers.cs
- CollectionView.cs
- ToolStripLocationCancelEventArgs.cs
- SettingsPropertyCollection.cs
- HitTestParameters3D.cs
- DispatcherObject.cs
- ContentElement.cs
- returneventsaver.cs
- _IPv4Address.cs
- FileAuthorizationModule.cs
- CodePageEncoding.cs
- DataServiceRequestOfT.cs
- StructuredTypeEmitter.cs
- MultipartIdentifier.cs
- PrincipalPermission.cs