Code:
/ FX-1434 / FX-1434 / 1.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
- StringKeyFrameCollection.cs
- StringDictionary.cs
- LocalizableAttribute.cs
- DataGridCell.cs
- CrossSiteScriptingValidation.cs
- TextCharacters.cs
- WindowsTooltip.cs
- ExpressionList.cs
- RawKeyboardInputReport.cs
- MenuItem.cs
- HttpCookiesSection.cs
- TextSelectionHelper.cs
- EncryptedKeyHashIdentifierClause.cs
- FontUnit.cs
- LookupNode.cs
- DetailsViewPageEventArgs.cs
- Visitor.cs
- ObjectMemberMapping.cs
- ProfileBuildProvider.cs
- DataGridDetailsPresenter.cs
- ToolboxBitmapAttribute.cs
- CertificateManager.cs
- URIFormatException.cs
- EdmFunction.cs
- PropertyValueUIItem.cs
- ProcessModule.cs
- CollaborationHelperFunctions.cs
- SharedPersonalizationStateInfo.cs
- Vector3DAnimationUsingKeyFrames.cs
- Variable.cs
- DataSourceCache.cs
- SystemIPv4InterfaceProperties.cs
- ToolStripOverflowButton.cs
- Qualifier.cs
- SystemTcpStatistics.cs
- sqlpipe.cs
- ProfileSettingsCollection.cs
- PerformanceCounterPermission.cs
- DataSourceDescriptorCollection.cs
- DbProviderSpecificTypePropertyAttribute.cs
- TriggerBase.cs
- X509CertificateInitiatorClientCredential.cs
- HandlerMappingMemo.cs
- SamlDelegatingWriter.cs
- NullableConverter.cs
- Sentence.cs
- Soap.cs
- ConstrainedDataObject.cs
- StateFinalizationDesigner.cs
- InheritanceContextHelper.cs
- OutputCacheProfileCollection.cs
- PingReply.cs
- BitmapPalettes.cs
- PolyQuadraticBezierSegment.cs
- GPRECTF.cs
- TextTreeUndoUnit.cs
- TextEmbeddedObject.cs
- XmlArrayItemAttribute.cs
- Run.cs
- DbProviderFactories.cs
- DbConnectionPool.cs
- SymLanguageType.cs
- PtsPage.cs
- FixedPosition.cs
- UnsafeNativeMethods.cs
- Dynamic.cs
- BackEase.cs
- CompilerLocalReference.cs
- PeerContact.cs
- ListViewContainer.cs
- DataGridViewLinkColumn.cs
- WebHttpBehavior.cs
- MembershipValidatePasswordEventArgs.cs
- Thumb.cs
- PartitionedDataSource.cs
- ExpressionBuilderCollection.cs
- CountAggregationOperator.cs
- Internal.cs
- compensatingcollection.cs
- UInt16.cs
- DiscoveryServerProtocol.cs
- HtmlInputText.cs
- AsyncOperation.cs
- Span.cs
- SqlReferenceCollection.cs
- PageContent.cs
- FileLevelControlBuilderAttribute.cs
- AppSettingsReader.cs
- XmlSchemas.cs
- PersistenceMetadataNamespace.cs
- OleDbErrorCollection.cs
- ContentPosition.cs
- PrimitiveSchema.cs
- SqlProviderServices.cs
- CompiledAction.cs
- EventItfInfo.cs
- MulticastOption.cs
- TypeElement.cs
- ComponentEvent.cs
- TempFiles.cs