Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / WebControls / DataSourceIDConverter.cs / 1 / DataSourceIDConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design.WebControls { using System; using System.CodeDom; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.ComponentModel.Design; using System.Data; using System.Design; using System.Diagnostics; using System.Runtime.InteropServices; using System.Globalization; using System.Collections.Generic; ///public class DataSourceIDConverter : TypeConverter { /// public DataSourceIDConverter() { } /// public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (sourceType == typeof(string)) { return true; } return false; } /// public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value == null) { return String.Empty; } else if (value.GetType() == typeof(string)) { return (string)value; } throw GetConvertFromException(value); } /// public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { string[] idsArray = null; if (context != null) { WebFormsRootDesigner rootDesigner = null; IDesignerHost designerHost = (IDesignerHost)(context.GetService(typeof(IDesignerHost))); Debug.Assert(designerHost != null, "Did not get DesignerHost service."); if (designerHost != null) { IComponent rootComponent = designerHost.RootComponent; if (rootComponent != null) { rootDesigner = designerHost.GetDesigner(rootComponent) as WebFormsRootDesigner; } } if (rootDesigner != null && !rootDesigner.IsDesignerViewLocked) { // Walk up the list of naming containers to get all accessible data sources IComponent component = context.Instance as IComponent; if (component == null) { // In case we are hosted in a DesignerActionList we need // to find out the component that the action list belongs to DesignerActionList actionList = context.Instance as DesignerActionList; if (actionList != null) { component = actionList.Component; } } IList allComponents = ControlHelper.GetAllComponents(component, new ControlHelper.IsValidComponentDelegate(IsValidDataSource)); List uniqueControlIDs = new List (); foreach (IComponent c in allComponents) { Control control = c as Control; if (control != null && !String.IsNullOrEmpty(control.ID)) { if (!uniqueControlIDs.Contains(control.ID)) { uniqueControlIDs.Add(control.ID); } } } uniqueControlIDs.Sort(StringComparer.OrdinalIgnoreCase); uniqueControlIDs.Insert(0, SR.GetString(SR.DataSourceIDChromeConverter_NoDataSource)); uniqueControlIDs.Add(SR.GetString(SR.DataSourceIDChromeConverter_NewDataSource)); idsArray = uniqueControlIDs.ToArray(); } } return new StandardValuesCollection(idsArray); } /// public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) { return false; } /// public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return true; } /// protected virtual bool IsValidDataSource(IComponent component) { Control control = component as Control; if (control == null) { return false; } if (String.IsNullOrEmpty(control.ID)) { return false; } return (component is IDataSource); } } } // 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
- _Rfc2616CacheValidators.cs
- ListViewItemSelectionChangedEvent.cs
- XmlElementList.cs
- Effect.cs
- TextEffect.cs
- CodeValidator.cs
- RadioButtonPopupAdapter.cs
- ScriptRegistrationManager.cs
- PrivateFontCollection.cs
- BitmapEffectGroup.cs
- ResourceReader.cs
- TextParagraphCache.cs
- GridViewUpdateEventArgs.cs
- PostBackOptions.cs
- QilLiteral.cs
- InkCanvasSelection.cs
- DataGridView.cs
- QilTypeChecker.cs
- GenericEnumConverter.cs
- Context.cs
- DetailsView.cs
- WindowsListBox.cs
- SecurityUniqueId.cs
- EditorZone.cs
- XmlEnumAttribute.cs
- SqlRecordBuffer.cs
- CompositeDispatchFormatter.cs
- OdbcInfoMessageEvent.cs
- Serializer.cs
- ToolboxItemLoader.cs
- PackagePartCollection.cs
- RegexCharClass.cs
- BaseResourcesBuildProvider.cs
- HandleRef.cs
- CalendarTable.cs
- PersonalizationStateInfo.cs
- FileSystemWatcher.cs
- WebReferenceOptions.cs
- _LoggingObject.cs
- ExportOptions.cs
- FileReservationCollection.cs
- ManifestResourceInfo.cs
- HttpModuleCollection.cs
- WebService.cs
- ClientTargetCollection.cs
- EntityPropertyMappingAttribute.cs
- WindowCollection.cs
- NamedObject.cs
- XmlSchemaAnyAttribute.cs
- FileFormatException.cs
- UdpUtility.cs
- ParseElementCollection.cs
- ProviderException.cs
- FormsAuthenticationUserCollection.cs
- KeyGesture.cs
- DoubleAnimationClockResource.cs
- DrawingBrush.cs
- SoapWriter.cs
- SamlAttribute.cs
- SafeRightsManagementSessionHandle.cs
- ColorInterpolationModeValidation.cs
- ConnectionManagementElement.cs
- Rotation3DAnimation.cs
- ReadOnlyPropertyMetadata.cs
- ControlBuilderAttribute.cs
- Rijndael.cs
- WorkflowService.cs
- EncodingDataItem.cs
- ConfigXmlText.cs
- DownloadProgressEventArgs.cs
- ProcessThreadCollection.cs
- XmlStreamStore.cs
- MonikerHelper.cs
- RealizationContext.cs
- SqlPersonalizationProvider.cs
- PropertyGrid.cs
- ElapsedEventArgs.cs
- PropertyAccessVisitor.cs
- httpserverutility.cs
- SupportingTokenSecurityTokenResolver.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- AsymmetricCryptoHandle.cs
- ObjectPropertyMapping.cs
- ReflectPropertyDescriptor.cs
- CommunicationException.cs
- UnknownBitmapDecoder.cs
- SmtpReplyReaderFactory.cs
- MarkupCompiler.cs
- RegisteredScript.cs
- ColorTransform.cs
- x509store.cs
- OptimalBreakSession.cs
- TimeSpanMinutesConverter.cs
- CSharpCodeProvider.cs
- TaiwanLunisolarCalendar.cs
- SocketAddress.cs
- MediaElement.cs
- ValidationPropertyAttribute.cs
- EventSetter.cs
- SynchronizationContext.cs