Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / ControlIdConverter.cs / 1 / 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.
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
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);
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BindingContext.cs
- KeyedHashAlgorithm.cs
- ToolboxItemCollection.cs
- oledbmetadatacolumnnames.cs
- WindowsServiceCredential.cs
- SqlDataSource.cs
- DataGridViewTextBoxColumn.cs
- ListControlConvertEventArgs.cs
- WebEventCodes.cs
- Rotation3D.cs
- UIElement.cs
- EntityProviderServices.cs
- Parser.cs
- ProjectedWrapper.cs
- MessageFormatterConverter.cs
- FixUpCollection.cs
- InternalMappingException.cs
- Process.cs
- ListViewDeletedEventArgs.cs
- JpegBitmapEncoder.cs
- InfoCardServiceInstallComponent.cs
- ContentFileHelper.cs
- RegisterResponseInfo.cs
- RSAProtectedConfigurationProvider.cs
- sqlnorm.cs
- MultipartContentParser.cs
- CryptoConfig.cs
- PathData.cs
- ToolboxBitmapAttribute.cs
- DynamicResourceExtension.cs
- CryptoKeySecurity.cs
- SchemaTableColumn.cs
- XmlSchemaInfo.cs
- SqlBulkCopy.cs
- SiteIdentityPermission.cs
- DispatcherOperation.cs
- GridViewActionList.cs
- EntityDataSourceSelectingEventArgs.cs
- XmlStreamedByteStreamReader.cs
- DesignDataSource.cs
- UnsafeNativeMethods.cs
- URL.cs
- SafeFindHandle.cs
- EnvelopedPkcs7.cs
- SchemaName.cs
- NativeMethods.cs
- OracleBoolean.cs
- ObjectConverter.cs
- CriticalFileToken.cs
- CodeNamespaceImportCollection.cs
- HttpConfigurationContext.cs
- Enumerable.cs
- JavaScriptSerializer.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- ObjectSet.cs
- DbBuffer.cs
- EditorZoneBase.cs
- StoreAnnotationsMap.cs
- ApplicationServiceHelper.cs
- ToolboxItemCollection.cs
- SoapInteropTypes.cs
- SortQuery.cs
- BinaryReader.cs
- UniqueConstraint.cs
- FacetDescriptionElement.cs
- PreloadedPackages.cs
- TypeLoadException.cs
- ToolStripDropDownItemDesigner.cs
- SessionEndingEventArgs.cs
- URI.cs
- Page.cs
- AnnotationAdorner.cs
- ItemMap.cs
- CodeTypeReferenceSerializer.cs
- RepeaterDataBoundAdapter.cs
- Visitor.cs
- MemberRelationshipService.cs
- SqlDependencyUtils.cs
- QuotedPrintableStream.cs
- _CacheStreams.cs
- PasswordTextNavigator.cs
- translator.cs
- xamlnodes.cs
- COM2IProvidePropertyBuilderHandler.cs
- ImpersonateTokenRef.cs
- WindowsGraphicsCacheManager.cs
- WebPartsPersonalization.cs
- ItemCollection.cs
- OdbcInfoMessageEvent.cs
- LicenseException.cs
- CodeDelegateCreateExpression.cs
- RegistryKey.cs
- TableColumn.cs
- ResourceProperty.cs
- BooleanAnimationUsingKeyFrames.cs
- XmlIlVisitor.cs
- TypedElement.cs
- ByteStack.cs
- HtmlInputReset.cs
- SqlNodeTypeOperators.cs