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
- ResourcesGenerator.cs
- HierarchicalDataSourceControl.cs
- Adorner.cs
- ServiceProviders.cs
- SafeTokenHandle.cs
- SlotInfo.cs
- WorkflowRuntimeServicesBehavior.cs
- TextEvent.cs
- JournalEntryStack.cs
- TrackingExtract.cs
- ApplicationProxyInternal.cs
- AutoResizedEvent.cs
- CacheMemory.cs
- HttpListenerException.cs
- FontCollection.cs
- EntityViewGenerationConstants.cs
- Fx.cs
- XmlSerializationGeneratedCode.cs
- TextAnchor.cs
- RijndaelManagedTransform.cs
- TreeNodeStyleCollection.cs
- DataGridPageChangedEventArgs.cs
- MessageContractImporter.cs
- baseshape.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- _AutoWebProxyScriptWrapper.cs
- RequestNavigateEventArgs.cs
- NewExpression.cs
- ActiveDocumentEvent.cs
- StringBuilder.cs
- StandardTransformFactory.cs
- SHA384.cs
- ReflectPropertyDescriptor.cs
- Simplifier.cs
- ReverseInheritProperty.cs
- StaticExtension.cs
- EventLogPermissionEntryCollection.cs
- SecurityState.cs
- AliasedExpr.cs
- UserNameSecurityToken.cs
- X509SecurityTokenProvider.cs
- SchemaAttDef.cs
- AssemblyBuilder.cs
- ObservableCollection.cs
- AuthorizationRuleCollection.cs
- Span.cs
- FlowLayoutSettings.cs
- PeerInputChannelListener.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- PeerResolverMode.cs
- ToolTip.cs
- VirtualizingStackPanel.cs
- SizeAnimationBase.cs
- UriTemplateDispatchFormatter.cs
- BitStack.cs
- ServiceHost.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- DecimalConstantAttribute.cs
- FixedTextContainer.cs
- PkcsMisc.cs
- SearchExpression.cs
- RecipientInfo.cs
- WebUtil.cs
- FastEncoderWindow.cs
- TextPointerBase.cs
- FixedBufferAttribute.cs
- ExpressionHelper.cs
- LazyTextWriterCreator.cs
- SelectionRangeConverter.cs
- Queue.cs
- TypeConverterHelper.cs
- TabItemAutomationPeer.cs
- FilterException.cs
- RadialGradientBrush.cs
- DataGridViewRowPrePaintEventArgs.cs
- WebBrowserBase.cs
- SqlProviderManifest.cs
- GrammarBuilderRuleRef.cs
- Serializer.cs
- Win32KeyboardDevice.cs
- DataErrorValidationRule.cs
- StylusCaptureWithinProperty.cs
- XPathAncestorIterator.cs
- RtfToXamlReader.cs
- DataPagerField.cs
- TextElementCollection.cs
- PageContentCollection.cs
- Image.cs
- OletxTransactionHeader.cs
- DataBoundLiteralControl.cs
- Matrix.cs
- TdsParserSafeHandles.cs
- CharacterString.cs
- DataContractSerializerServiceBehavior.cs
- PropertyPathConverter.cs
- EdmComplexTypeAttribute.cs
- ReadOnlyDataSource.cs
- FilterableAttribute.cs
- HttpModuleActionCollection.cs
- _NtlmClient.cs