Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / ControlIdConverter.cs / 1305376 / ControlIdConverter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Globalization;
using System.Reflection;
using System.Web.Util;
using System.Security.Permissions;
///
/// TypeConverter for ControlParameter's ControlID property.
///
public class ControlIDConverter : StringConverter {
///
/// Determines whether a given control should have its id added to the StandardValuesCollection.
///
protected virtual bool FilterControl(Control control) {
return true;
}
///
/// Returns a list of all control IDs in the container.
///
private string[] GetControls(IDesignerHost host, object instance) {
IContainer container = host.Container;
// Locate nearest container
IComponent component = instance as IComponent;
if (component != null && component.Site != null) {
container = component.Site.Container;
}
if (container == null) {
return null;
}
ComponentCollection allComponents = container.Components;
ArrayList array = new ArrayList();
// For each control in the container
foreach (IComponent comp in (IEnumerable)allComponents) {
Control control = comp as Control;
// Ignore DesignerHost.RootComponent (Page or UserControl), controls that don't have ID's,
// and the Control itself
if (control != null &&
control != instance &&
control != host.RootComponent &&
control.ID != null &&
control.ID.Length > 0 &&
FilterControl(control)) {
array.Add(control.ID);
}
}
array.Sort(Comparer.Default);
return (string[])array.ToArray(typeof(string));
}
///
/// Returns a collection of standard values retrieved from the context specified
/// by the specified type descriptor.
///
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) {
if (context == null) {
return null;
}
IDesignerHost host = (IDesignerHost)context.GetService(typeof(IDesignerHost));
Debug.Assert(host != null, "Unable to get IDesignerHost in ControlIDConverter");
if (host != null) {
string[] controlIDs = GetControls(host, context.Instance);
if (controlIDs == null) {
return null;
}
return new StandardValuesCollection(controlIDs);
}
return null;
}
///
/// Gets whether or not the context specified contains exclusive standard values.
///
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) {
return false;
}
///
/// Gets whether or not the specified context contains supported standard values.
///
public override bool GetStandardValuesSupported(ITypeDescriptorContext context) {
return (context != null);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebZone.cs
- TableLayoutColumnStyleCollection.cs
- VoiceChangeEventArgs.cs
- WindowProviderWrapper.cs
- _FixedSizeReader.cs
- SqlNodeAnnotations.cs
- ListViewDeleteEventArgs.cs
- DateBoldEvent.cs
- FixedPosition.cs
- Empty.cs
- _PooledStream.cs
- ControlParameter.cs
- ValueTable.cs
- HtmlElementErrorEventArgs.cs
- Token.cs
- AssemblySettingAttributes.cs
- XPathBinder.cs
- StopRoutingHandler.cs
- ChannelManager.cs
- Int16Converter.cs
- COM2ColorConverter.cs
- ClientTargetSection.cs
- XsdBuilder.cs
- WindowsAuthenticationEventArgs.cs
- COSERVERINFO.cs
- DataGridViewTopLeftHeaderCell.cs
- SqlConnectionPoolProviderInfo.cs
- SoapAttributeAttribute.cs
- XmlNavigatorFilter.cs
- _UncName.cs
- QueryCacheManager.cs
- sqlpipe.cs
- StringValueSerializer.cs
- PageAsyncTaskManager.cs
- AlignmentYValidation.cs
- DataGridHeaderBorder.cs
- ClrProviderManifest.cs
- WindowsAuthenticationModule.cs
- ToolStrip.cs
- DbSetClause.cs
- TableCell.cs
- TransactionFlowElement.cs
- TopClause.cs
- ToolStripLocationCancelEventArgs.cs
- ScriptControlDescriptor.cs
- IgnoreSection.cs
- PersistenceProvider.cs
- WindowsRichEdit.cs
- RuntimeConfigurationRecord.cs
- RemotingService.cs
- SafeBitVector32.cs
- WizardForm.cs
- MulticastDelegate.cs
- IWorkflowDebuggerService.cs
- IProvider.cs
- CharEntityEncoderFallback.cs
- Normalization.cs
- StylusEventArgs.cs
- InstanceNameConverter.cs
- RangeValidator.cs
- CompositeDataBoundControl.cs
- EventLogEntryCollection.cs
- SQLInt32.cs
- DataObjectMethodAttribute.cs
- PanelDesigner.cs
- HostedHttpRequestAsyncResult.cs
- HashHelpers.cs
- MutexSecurity.cs
- TraceXPathNavigator.cs
- TemplateApplicationHelper.cs
- SchemaObjectWriter.cs
- ContractNamespaceAttribute.cs
- PathFigure.cs
- FormViewPagerRow.cs
- Message.cs
- StringDictionary.cs
- PartitionedStreamMerger.cs
- XmlRawWriter.cs
- ReservationCollection.cs
- CommonDialog.cs
- Gdiplus.cs
- OleDbRowUpdatedEvent.cs
- MsmqIntegrationValidationBehavior.cs
- CodeAttributeDeclaration.cs
- XPathDescendantIterator.cs
- KeyManager.cs
- DependencyPropertyKind.cs
- PolyBezierSegmentFigureLogic.cs
- FtpCachePolicyElement.cs
- LinqDataSourceDeleteEventArgs.cs
- ValueOfAction.cs
- TableStyle.cs
- XmlDocument.cs
- MinimizableAttributeTypeConverter.cs
- ColumnResult.cs
- AutoGeneratedFieldProperties.cs
- PrintPreviewDialog.cs
- Parameter.cs
- CatalogZone.cs
- XmlDocumentType.cs