Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / ListSourceHelper.cs / 1 / ListSourceHelper.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System.Collections; using System.ComponentModel; using System.Security.Permissions; [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public static class ListSourceHelper { public static bool ContainsListCollection(IDataSource dataSource) { ICollection viewNames = dataSource.GetViewNames(); if (viewNames != null && viewNames.Count > 0) { return true; } return false; } public static IList GetList(IDataSource dataSource) { ICollection viewNames = dataSource.GetViewNames(); if (viewNames != null && viewNames.Count > 0) { return new ListSourceList(dataSource); } return null; } internal sealed class ListSourceList : CollectionBase, ITypedList { IDataSource _dataSource; public ListSourceList(IDataSource dataSource) { _dataSource = dataSource; ((IList)this).Add(new ListSourceRow(_dataSource)); } #region ITypedList implementation string ITypedList.GetListName(PropertyDescriptor[] listAccessors) { return String.Empty; } PropertyDescriptorCollection ITypedList.GetItemProperties(PropertyDescriptor[] listAccessors) { if (_dataSource != null) { ICollection viewNames = _dataSource.GetViewNames(); if (viewNames != null && viewNames.Count > 0) { string[] viewNamesArray = new string[viewNames.Count]; viewNames.CopyTo(viewNamesArray, 0); PropertyDescriptor[] props = new PropertyDescriptor[viewNames.Count]; for (int i = 0; i < viewNamesArray.Length; i++) { props[i] = new ListSourcePropertyDescriptor(viewNamesArray[i]); } return new PropertyDescriptorCollection(props); } } return new PropertyDescriptorCollection(null); } #endregion ITypedList implementations } internal class ListSourceRow { IDataSource _dataSource; public ListSourceRow(IDataSource dataSource) { _dataSource = dataSource; } public IDataSource DataSource { get { return _dataSource; } } } internal class ListSourcePropertyDescriptor : PropertyDescriptor { string _name; public ListSourcePropertyDescriptor(string name) : base(name, null) { _name = name; } public override Type ComponentType { get { return typeof(ListSourceRow); } } public override bool IsReadOnly { get { return true; } } public override Type PropertyType { get { return typeof(IEnumerable); } } public override bool CanResetValue(object value) { return false; } public override object GetValue(object source) { if (source is ListSourceRow) { ListSourceRow row = (ListSourceRow)source; IDataSource dataSource = row.DataSource; return dataSource.GetView(_name).ExecuteSelect(DataSourceSelectArguments.Empty); } return null; } public override void ResetValue(object component) { throw new NotSupportedException(); } public override void SetValue(object component, object value) { throw new NotSupportedException(); } public override bool ShouldSerializeValue(object component) { return false; } } } } // 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
- SendActivityEventArgs.cs
- Merger.cs
- PeerIPHelper.cs
- TypeUsage.cs
- SqlDataRecord.cs
- StringConverter.cs
- WinCategoryAttribute.cs
- AssemblyCollection.cs
- EasingKeyFrames.cs
- CodeObjectCreateExpression.cs
- WmlPageAdapter.cs
- ObjectDataProvider.cs
- Frame.cs
- WrapperSecurityCommunicationObject.cs
- System.Data_BID.cs
- SystemIcmpV4Statistics.cs
- Metafile.cs
- PageCatalogPart.cs
- List.cs
- FileCodeGroup.cs
- MonthChangedEventArgs.cs
- WhitespaceRuleReader.cs
- ManagementEventWatcher.cs
- QilInvokeLateBound.cs
- SettingsPropertyNotFoundException.cs
- DocumentCollection.cs
- AndCondition.cs
- figurelengthconverter.cs
- DataTableMappingCollection.cs
- XmlCountingReader.cs
- VersionedStream.cs
- Pair.cs
- ForeignKeyConstraint.cs
- ProviderUtil.cs
- UriExt.cs
- XmlSerializerSection.cs
- BookmarkCallbackWrapper.cs
- PrintDialog.cs
- Slider.cs
- ResourcesBuildProvider.cs
- DbConnectionFactory.cs
- IfJoinedCondition.cs
- EndpointInstanceProvider.cs
- ThreadStateException.cs
- TemplateControlParser.cs
- XmlChildNodes.cs
- ComponentResourceKeyConverter.cs
- ReadOnlyDictionary.cs
- ExeConfigurationFileMap.cs
- ThaiBuddhistCalendar.cs
- SqlServices.cs
- Sorting.cs
- ChangePassword.cs
- WebReferencesBuildProvider.cs
- DataGridViewSelectedColumnCollection.cs
- NativeMethods.cs
- DispatcherProcessingDisabled.cs
- ListenerServiceInstallComponent.cs
- RegexInterpreter.cs
- CodeSnippetTypeMember.cs
- X509PeerCertificateAuthenticationElement.cs
- MobileControlBuilder.cs
- Stroke.cs
- _KerberosClient.cs
- Peer.cs
- FaultException.cs
- ChtmlSelectionListAdapter.cs
- TraceData.cs
- CharEnumerator.cs
- WorkflowWebService.cs
- PropertyValue.cs
- GenericAuthenticationEventArgs.cs
- UIElement3D.cs
- StreamingContext.cs
- InputProcessorProfilesLoader.cs
- ProfileProvider.cs
- GridItemCollection.cs
- TextElementAutomationPeer.cs
- EventlogProvider.cs
- HttpCacheVaryByContentEncodings.cs
- TraceInternal.cs
- TextModifier.cs
- IconHelper.cs
- SecurityHeaderTokenResolver.cs
- SessionStateContainer.cs
- SafeProcessHandle.cs
- PenLineCapValidation.cs
- ViewLoader.cs
- PlainXmlDeserializer.cs
- SoapObjectReader.cs
- CriticalHandle.cs
- Int32Collection.cs
- Token.cs
- PrintPreviewDialog.cs
- CompiledIdentityConstraint.cs
- NopReturnReader.cs
- XmlSchemaValidator.cs
- InheritanceUI.cs
- DisableDpiAwarenessAttribute.cs
- CacheVirtualItemsEvent.cs