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
- KeyEvent.cs
- RangeValidator.cs
- ConfigurationManager.cs
- BooleanStorage.cs
- xamlnodes.cs
- InternalSafeNativeMethods.cs
- SqlCharStream.cs
- Command.cs
- Italic.cs
- prompt.cs
- LayoutManager.cs
- CheckedListBox.cs
- _LocalDataStore.cs
- XmlArrayAttribute.cs
- CurrentChangingEventArgs.cs
- PropertyTabAttribute.cs
- Point3D.cs
- TypeNameConverter.cs
- IsolatedStorageException.cs
- DoubleUtil.cs
- ContentType.cs
- EntityDataSourceContextCreatingEventArgs.cs
- DatatypeImplementation.cs
- PtsContext.cs
- ControlCommandSet.cs
- SchemaTableColumn.cs
- FullTextLine.cs
- Socket.cs
- SemanticBasicElement.cs
- DataGridViewSelectedRowCollection.cs
- ProcessHostServerConfig.cs
- Bitmap.cs
- TransactionChannel.cs
- PropertyEntry.cs
- XmlAutoDetectWriter.cs
- MarginsConverter.cs
- followingsibling.cs
- PropertyMappingExceptionEventArgs.cs
- XslTransform.cs
- NextPreviousPagerField.cs
- KoreanCalendar.cs
- ConfigDefinitionUpdates.cs
- AsyncContentLoadedEventArgs.cs
- CodeAttributeArgument.cs
- Track.cs
- StyleTypedPropertyAttribute.cs
- HttpModuleActionCollection.cs
- FloaterBaseParagraph.cs
- PackagePart.cs
- MobileListItemCollection.cs
- VBCodeProvider.cs
- Knowncolors.cs
- PasswordRecovery.cs
- UnionQueryOperator.cs
- TemplateXamlParser.cs
- DetailsViewPageEventArgs.cs
- BaseProcessor.cs
- SqlRowUpdatingEvent.cs
- PageParserFilter.cs
- StatusBar.cs
- OperandQuery.cs
- ComponentResourceKey.cs
- IERequestCache.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- PermissionSetTriple.cs
- DataRelationPropertyDescriptor.cs
- TypedColumnHandler.cs
- GroupBox.cs
- DrawingDrawingContext.cs
- Baml2006ReaderContext.cs
- PropertyCollection.cs
- UnsettableComboBox.cs
- SplashScreenNativeMethods.cs
- GradientBrush.cs
- DeploymentSection.cs
- XmlSchema.cs
- RootBrowserWindowAutomationPeer.cs
- ReadOnlyAttribute.cs
- GridViewPageEventArgs.cs
- OleDbPropertySetGuid.cs
- StorageFunctionMapping.cs
- UIElementHelper.cs
- StatusBarPanel.cs
- HttpRuntimeSection.cs
- DataServiceContext.cs
- FormViewInsertedEventArgs.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- DirectoryInfo.cs
- WebDescriptionAttribute.cs
- SignatureHelper.cs
- Attributes.cs
- XmlSchemaComplexType.cs
- GeneratedView.cs
- BaseCodePageEncoding.cs
- ContextStack.cs
- DataGridItem.cs
- SessionStateItemCollection.cs
- RichTextBoxConstants.cs
- TransformPattern.cs
- _NetRes.cs