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
- MILUtilities.cs
- SettingsProperty.cs
- EventLogPermission.cs
- WebCategoryAttribute.cs
- CultureSpecificStringDictionary.cs
- ScriptingProfileServiceSection.cs
- NavigateEvent.cs
- WebDescriptionAttribute.cs
- IndentedWriter.cs
- TreeNodeClickEventArgs.cs
- ConstructorArgumentAttribute.cs
- SqlVisitor.cs
- XmlAttributes.cs
- ListBindingHelper.cs
- WizardForm.cs
- DupHandleConnectionReader.cs
- X509ClientCertificateCredentialsElement.cs
- HttpCacheVaryByContentEncodings.cs
- BaseCodePageEncoding.cs
- DataGridViewTextBoxCell.cs
- WindowsFormsLinkLabel.cs
- ToolboxItemFilterAttribute.cs
- DeadCharTextComposition.cs
- TypeDependencyAttribute.cs
- TabControl.cs
- WebPartConnectionsConnectVerb.cs
- ControlHelper.cs
- ExpressionNormalizer.cs
- TextElement.cs
- HuffModule.cs
- TextAdaptor.cs
- SecurityState.cs
- SoapAttributes.cs
- MemberListBinding.cs
- MailHeaderInfo.cs
- CodeSubDirectoriesCollection.cs
- BitmapEffectGeneralTransform.cs
- RevocationPoint.cs
- XsltArgumentList.cs
- EngineSite.cs
- BasicExpressionVisitor.cs
- NamespaceQuery.cs
- DocumentsTrace.cs
- DataGridAutoFormat.cs
- RectConverter.cs
- CodeAttributeArgumentCollection.cs
- ListenerElementsCollection.cs
- IOThreadScheduler.cs
- AttachedPropertyBrowsableAttribute.cs
- TextContainerChangedEventArgs.cs
- StrokeCollection.cs
- Asn1IntegerConverter.cs
- TdsParser.cs
- RuleDefinitions.cs
- CultureMapper.cs
- FontStyleConverter.cs
- WorkflowViewElement.cs
- ExpressionBuilder.cs
- ReachSerializerAsync.cs
- WizardForm.cs
- QilGeneratorEnv.cs
- MessageSecurityProtocol.cs
- RemotingServices.cs
- XmlBindingWorker.cs
- CmsInterop.cs
- ListChangedEventArgs.cs
- ExtendedProtectionPolicyTypeConverter.cs
- Visual3D.cs
- SqlBooleanMismatchVisitor.cs
- InputScopeConverter.cs
- HelpProvider.cs
- PerfService.cs
- Int32Converter.cs
- LocalBuilder.cs
- AttachedPropertiesService.cs
- ThreadExceptionDialog.cs
- AuthenticationModuleElement.cs
- HttpProtocolImporter.cs
- CorrelationResolver.cs
- UIElement.cs
- RowBinding.cs
- DataSourceHelper.cs
- SendActivityValidator.cs
- DBAsyncResult.cs
- RegistrationServices.cs
- EntitySqlQueryBuilder.cs
- SqlNamer.cs
- ConfigXmlCDataSection.cs
- GeometryModel3D.cs
- OutputScope.cs
- DefaultPrintController.cs
- ConfigurationErrorsException.cs
- PerSessionInstanceContextProvider.cs
- GenerateTemporaryAssemblyTask.cs
- StringBuilder.cs
- RC2CryptoServiceProvider.cs
- Table.cs
- JsonFormatWriterGenerator.cs
- XmlChildNodes.cs
- SuppressIldasmAttribute.cs