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
- LassoHelper.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- COM2Properties.cs
- QuadraticBezierSegment.cs
- DataGridCommandEventArgs.cs
- LassoSelectionBehavior.cs
- Utils.cs
- AutoFocusStyle.xaml.cs
- BitmapEffectDrawing.cs
- SimpleRecyclingCache.cs
- ConfigurationStrings.cs
- PathFigure.cs
- TextBoxAutomationPeer.cs
- FastPropertyAccessor.cs
- TypeHelper.cs
- MenuTracker.cs
- EventLogPermissionEntry.cs
- CombinedGeometry.cs
- XPathItem.cs
- HtmlElement.cs
- sortedlist.cs
- InheritanceAttribute.cs
- ThrowHelper.cs
- ParameterCollection.cs
- DataPagerFieldItem.cs
- SignatureSummaryDialog.cs
- ControlPager.cs
- PersistChildrenAttribute.cs
- PermissionSet.cs
- ProcessDesigner.cs
- IApplicationTrustManager.cs
- SortQuery.cs
- Win32Native.cs
- Decoder.cs
- SchemaImporterExtensionElement.cs
- CallbackHandler.cs
- CreateSequenceResponse.cs
- SoapFaultCodes.cs
- ProjectionPathSegment.cs
- JsonFormatGeneratorStatics.cs
- UnmanagedBitmapWrapper.cs
- PackageRelationship.cs
- TextServicesProperty.cs
- WeakReferenceList.cs
- CaseExpr.cs
- ResourceSet.cs
- SystemPens.cs
- TableLayoutSettingsTypeConverter.cs
- XmlWrappingWriter.cs
- _ConnectOverlappedAsyncResult.cs
- TemplateLookupAction.cs
- Rules.cs
- OracleInternalConnection.cs
- PerformanceCounterCategory.cs
- WebPartVerb.cs
- DesignerAutoFormat.cs
- XmlRawWriterWrapper.cs
- InvalidCastException.cs
- WindowHelperService.cs
- Section.cs
- AttributeData.cs
- SimpleApplicationHost.cs
- ListBoxItemAutomationPeer.cs
- BamlBinaryReader.cs
- SHA384.cs
- _ConnectionGroup.cs
- WebRequestModuleElement.cs
- CreateUserErrorEventArgs.cs
- MethodExpression.cs
- CollectionBuilder.cs
- Application.cs
- PropertyTabChangedEvent.cs
- ReflectTypeDescriptionProvider.cs
- EventItfInfo.cs
- ConsumerConnectionPointCollection.cs
- RequestCacheValidator.cs
- ViewCellSlot.cs
- dataSvcMapFileLoader.cs
- Triplet.cs
- GreenMethods.cs
- unsafenativemethodsother.cs
- DirectoryInfo.cs
- CultureSpecificStringDictionary.cs
- LambdaCompiler.Lambda.cs
- UpdateExpressionVisitor.cs
- GridViewColumn.cs
- GeometryCollection.cs
- DocumentGrid.cs
- UnauthorizedAccessException.cs
- OptimizerPatterns.cs
- InstanceOwnerException.cs
- InstanceCreationEditor.cs
- SqlTriggerContext.cs
- CopyAction.cs
- IChannel.cs
- FontFamilyIdentifier.cs
- FacetValueContainer.cs
- ExplicitDiscriminatorMap.cs
- WebPartsPersonalization.cs
- oledbmetadatacolumnnames.cs