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
- PtsHost.cs
- ToolStripTextBox.cs
- OperationResponse.cs
- LogEntryUtils.cs
- XmlSchemaComplexContentExtension.cs
- ParentQuery.cs
- D3DImage.cs
- DataMisalignedException.cs
- XmlChildEnumerator.cs
- XNodeValidator.cs
- ReadWriteObjectLock.cs
- ScrollBarAutomationPeer.cs
- RoutingTable.cs
- SizeAnimationUsingKeyFrames.cs
- WebConfigurationHost.cs
- FormattedTextSymbols.cs
- DesignerWidgets.cs
- SqlBooleanMismatchVisitor.cs
- PseudoWebRequest.cs
- ThreadInterruptedException.cs
- ScaleTransform3D.cs
- DetailsViewRow.cs
- TreeView.cs
- SplitterPanel.cs
- UpdateProgress.cs
- Transaction.cs
- FixedNode.cs
- RequestCacheValidator.cs
- PrintingPermissionAttribute.cs
- XsltException.cs
- InvokeHandlers.cs
- EventSourceCreationData.cs
- XmlILIndex.cs
- SoapIgnoreAttribute.cs
- SHA256Managed.cs
- ProfileSettings.cs
- GetPageCompletedEventArgs.cs
- SendDesigner.xaml.cs
- FrameworkTemplate.cs
- MessageBuilder.cs
- TextOnlyOutput.cs
- formatter.cs
- PartManifestEntry.cs
- ProcessProtocolHandler.cs
- PlainXmlDeserializer.cs
- FixUp.cs
- TrackingProfile.cs
- CaseCqlBlock.cs
- XmlDocumentFragment.cs
- Double.cs
- EntityClassGenerator.cs
- WinFormsSecurity.cs
- StateWorkerRequest.cs
- Calendar.cs
- OrderToken.cs
- HttpHeaderCollection.cs
- MatrixTransform3D.cs
- PictureBox.cs
- KeyInterop.cs
- XamlBrushSerializer.cs
- Nullable.cs
- ArraySet.cs
- ConfigurationLocationCollection.cs
- MenuEventArgs.cs
- CookielessHelper.cs
- SupportingTokenChannel.cs
- ActivityTrace.cs
- _NegoStream.cs
- Invariant.cs
- GlyphingCache.cs
- InputScopeAttribute.cs
- MasterPage.cs
- CapabilitiesState.cs
- Decimal.cs
- GlyphsSerializer.cs
- ICspAsymmetricAlgorithm.cs
- FamilyMap.cs
- SolidBrush.cs
- LoadWorkflowCommand.cs
- ISSmlParser.cs
- ImageAttributes.cs
- TrustSection.cs
- ImageSourceConverter.cs
- ZipQueryOperator.cs
- BulletedList.cs
- SmiTypedGetterSetter.cs
- RelationshipSet.cs
- DateTimeFormatInfoScanner.cs
- EnglishPluralizationService.cs
- AddingNewEventArgs.cs
- QilStrConcat.cs
- FrameworkElement.cs
- RC2CryptoServiceProvider.cs
- FileSecurity.cs
- StorageScalarPropertyMapping.cs
- EntityModelBuildProvider.cs
- XmlLangPropertyAttribute.cs
- NativeRecognizer.cs
- BaseDataListDesigner.cs
- Margins.cs