Code:
/ DotNET / DotNET / 8.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
- BindingCollection.cs
- ConfigPathUtility.cs
- DataBindingExpressionBuilder.cs
- ConnectionPoolManager.cs
- TdsValueSetter.cs
- QilTargetType.cs
- NotifyIcon.cs
- KeyValueConfigurationCollection.cs
- DoubleKeyFrameCollection.cs
- MessageOperationFormatter.cs
- TransactionManagerProxy.cs
- XmlLanguage.cs
- PropertyNames.cs
- MarkupObject.cs
- WhitespaceRule.cs
- filewebresponse.cs
- ChildChangedEventArgs.cs
- ServiceDescription.cs
- BindingsSection.cs
- updatecommandorderer.cs
- GiveFeedbackEventArgs.cs
- InlinedLocationReference.cs
- Attachment.cs
- dsa.cs
- CacheSection.cs
- HttpValueCollection.cs
- ContextBase.cs
- XmlUtf8RawTextWriter.cs
- OutputCacheSection.cs
- DiffuseMaterial.cs
- DbParameterCollection.cs
- ThousandthOfEmRealDoubles.cs
- NodeLabelEditEvent.cs
- PixelFormats.cs
- ComponentManagerBroker.cs
- DataKey.cs
- HttpListener.cs
- HashSetEqualityComparer.cs
- ArrayExtension.cs
- precedingquery.cs
- StandardOleMarshalObject.cs
- SafeArrayRankMismatchException.cs
- ConfigsHelper.cs
- DataGridTableCollection.cs
- TemplatePropertyEntry.cs
- SQLMoneyStorage.cs
- _CacheStreams.cs
- ToolStripManager.cs
- SqlRowUpdatedEvent.cs
- AccessText.cs
- DataGridClipboardCellContent.cs
- TableRow.cs
- TextEndOfParagraph.cs
- DataGridViewSelectedCellCollection.cs
- RootBuilder.cs
- PersistChildrenAttribute.cs
- XmlSchemaAppInfo.cs
- ProgressChangedEventArgs.cs
- XmlSchemaExporter.cs
- DBProviderConfigurationHandler.cs
- ThousandthOfEmRealDoubles.cs
- StatusInfoItem.cs
- METAHEADER.cs
- ServiceNameCollection.cs
- VariableQuery.cs
- ClientSponsor.cs
- CheckBox.cs
- SoapSchemaExporter.cs
- AppendHelper.cs
- ProxyHwnd.cs
- MemberDescriptor.cs
- BroadcastEventHelper.cs
- FixedPosition.cs
- WebPartUserCapability.cs
- DatagridviewDisplayedBandsData.cs
- HttpWebResponse.cs
- wgx_commands.cs
- DeferredTextReference.cs
- ProcessThreadCollection.cs
- WorkflowQueueInfo.cs
- ApplicationFileCodeDomTreeGenerator.cs
- HtmlUtf8RawTextWriter.cs
- StorageConditionPropertyMapping.cs
- AuthenticationService.cs
- DataSourceCache.cs
- ChtmlTextWriter.cs
- AutomationEventArgs.cs
- RegistryKey.cs
- ContextBase.cs
- LinkAreaEditor.cs
- BoolExpressionVisitors.cs
- KeyMatchBuilder.cs
- MessageBox.cs
- MatrixTransform.cs
- ActivityMetadata.cs
- PaperSource.cs
- ColorAnimation.cs
- VectorAnimationBase.cs
- DefaultHttpHandler.cs
- StructuredTypeEmitter.cs