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
- DefaultProxySection.cs
- XmlBaseWriter.cs
- WindowsImpersonationContext.cs
- SerializationFieldInfo.cs
- ActivityExecutor.cs
- ToolboxItemCollection.cs
- Signature.cs
- Label.cs
- PresentationAppDomainManager.cs
- Win32Native.cs
- SoapCommonClasses.cs
- input.cs
- SocketInformation.cs
- VerificationAttribute.cs
- Hash.cs
- Point3DConverter.cs
- StaticContext.cs
- TypefaceMetricsCache.cs
- Image.cs
- RadialGradientBrush.cs
- DynamicValidatorEventArgs.cs
- QilStrConcatenator.cs
- updatecommandorderer.cs
- HtmlInputPassword.cs
- DataProviderNameConverter.cs
- NavigationExpr.cs
- WeakHashtable.cs
- CompositeTypefaceMetrics.cs
- FindSimilarActivitiesVerb.cs
- RMPublishingDialog.cs
- Config.cs
- ListViewDeletedEventArgs.cs
- BindingWorker.cs
- SmtpDateTime.cs
- TextEditorContextMenu.cs
- ImageCodecInfo.cs
- DetailsViewInsertEventArgs.cs
- StorageTypeMapping.cs
- FilterableAttribute.cs
- HuffCodec.cs
- SafeRightsManagementQueryHandle.cs
- EntityModelBuildProvider.cs
- ExpressionNode.cs
- DesignerEditorPartChrome.cs
- BatchStream.cs
- AtomicFile.cs
- ReliableSessionBindingElementImporter.cs
- DropShadowBitmapEffect.cs
- SimpleHandlerBuildProvider.cs
- OracleConnectionStringBuilder.cs
- PagesSection.cs
- SettingsPropertyIsReadOnlyException.cs
- DynamicPropertyHolder.cs
- SerializationSectionGroup.cs
- ScrollChrome.cs
- Debugger.cs
- ContentTextAutomationPeer.cs
- BrowsableAttribute.cs
- ModelPerspective.cs
- SqlInternalConnectionSmi.cs
- ObjectListCommandsPage.cs
- ListViewItem.cs
- EditingCoordinator.cs
- DuplicateDetector.cs
- Int64Animation.cs
- TrackPointCollection.cs
- AutomationProperties.cs
- Vector3DValueSerializer.cs
- XsltException.cs
- CoreChannel.cs
- TextAnchor.cs
- ArraySet.cs
- FamilyMapCollection.cs
- SurrogateEncoder.cs
- PropertyToken.cs
- basevalidator.cs
- DesignerDataTableBase.cs
- CaretElement.cs
- GlobalEventManager.cs
- SemanticKeyElement.cs
- TraceListeners.cs
- XmlArrayItemAttribute.cs
- DefaultValueConverter.cs
- TextTreeFixupNode.cs
- ModuleBuilderData.cs
- ChineseLunisolarCalendar.cs
- PropertyInformationCollection.cs
- InvalidCommandTreeException.cs
- COM2ExtendedBrowsingHandler.cs
- HttpProfileBase.cs
- ReferenceService.cs
- MiniLockedBorderGlyph.cs
- GradientBrush.cs
- QueryServiceConfigHandle.cs
- Opcode.cs
- IPGlobalProperties.cs
- ControlBindingsCollection.cs
- ProgressBarAutomationPeer.cs
- XmlDocumentSerializer.cs
- WebWorkflowRole.cs