Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / ControlParameter.cs / 1 / ControlParameter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.ComponentModel; using System.Web.UI.WebControls; using System.Security.Permissions; ////// Represents a Parameter that gets its value from a control's property. /// [ DefaultProperty("ControlID"), ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class ControlParameter : Parameter { ////// Creates an instance of the ControlParameter class. /// public ControlParameter() { } ////// Creates an instance of the ControlParameter class with the specified parameter name and control ID. /// public ControlParameter(string name, string controlID) : base(name) { ControlID = controlID; } ////// Creates an instance of the ControlParameter class with the specified parameter name, control ID, and property name. /// public ControlParameter(string name, string controlID, string propertyName) : base(name) { ControlID = controlID; PropertyName = propertyName; } ////// Creates an instance of the ControlParameter class with the specified parameter name, type, control ID, and property name. /// public ControlParameter(string name, TypeCode type, string controlID, string propertyName) : base(name, type) { ControlID = controlID; PropertyName = propertyName; } ////// Used to clone a parameter. /// protected ControlParameter(ControlParameter original) : base(original) { ControlID = original.ControlID; PropertyName = original.PropertyName; } ////// The ID of the control to get the value from. /// [ DefaultValue(""), IDReferenceProperty(), RefreshProperties(RefreshProperties.All), TypeConverter(typeof(ControlIDConverter)), WebCategory("Control"), WebSysDescription(SR.ControlParameter_ControlID), ] public string ControlID { get { object o = ViewState["ControlID"]; if (o == null) return String.Empty; return (string)o; } set { if (ControlID != value) { ViewState["ControlID"] = value; OnParameterChanged(); } } } ////// The name of the control's property to get the value from. /// If none is specified, the ControlValueProperty attribute of the control will be examined to determine the default property name. /// [ DefaultValue(""), TypeConverter(typeof(ControlPropertyNameConverter)), WebCategory("Control"), WebSysDescription(SR.ControlParameter_PropertyName), ] public string PropertyName { get { object o = ViewState["PropertyName"]; if (o == null) return String.Empty; return (string)o; } set { if (PropertyName != value) { ViewState["PropertyName"] = value; OnParameterChanged(); } } } ////// Creates a new ControlParameter that is a copy of this ControlParameter. /// protected override Parameter Clone() { return new ControlParameter(this); } ////// Returns the updated value of the parameter. /// protected override object Evaluate(HttpContext context, Control control) { if (control == null) { return null; } string controlID = ControlID; string propertyName = PropertyName; if (controlID.Length == 0) { throw new ArgumentException(SR.GetString(SR.ControlParameter_ControlIDNotSpecified, Name)); } Control foundControl = DataBoundControlHelper.FindControl(control, controlID); if (foundControl == null) { throw new InvalidOperationException(SR.GetString(SR.ControlParameter_CouldNotFindControl, controlID, Name)); } ControlValuePropertyAttribute controlValueProp = (ControlValuePropertyAttribute)TypeDescriptor.GetAttributes(foundControl)[typeof(ControlValuePropertyAttribute)]; // If no property name is specified, use the ControlValuePropertyAttribute to determine which property to use. if (propertyName.Length == 0) { if ((controlValueProp != null) && (!String.IsNullOrEmpty(controlValueProp.Name))) { propertyName = controlValueProp.Name; } else { throw new InvalidOperationException(SR.GetString(SR.ControlParameter_PropertyNameNotSpecified, controlID, Name)); } } // Get the value of the property object value = DataBinder.Eval(foundControl, propertyName); // Convert the value to null if this is the default property and the value is the property's default value if (controlValueProp != null && String.Equals(controlValueProp.Name, propertyName, StringComparison.OrdinalIgnoreCase) && controlValueProp.DefaultValue != null && controlValueProp.DefaultValue.Equals(value)) { return null; } return value; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DetailsView.cs
- TemplatePartAttribute.cs
- InstanceDataCollectionCollection.cs
- AccessDataSource.cs
- EngineSite.cs
- EventListener.cs
- CharacterBufferReference.cs
- SaveFileDialog.cs
- DataBindEngine.cs
- ExpressionBuilder.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- WebEvents.cs
- ExportFileRequest.cs
- DataViewManagerListItemTypeDescriptor.cs
- TypeLibConverter.cs
- ClipboardData.cs
- XmlNodeComparer.cs
- PropertyGridView.cs
- ExpressionHelper.cs
- OracleParameter.cs
- Merger.cs
- XmlReaderDelegator.cs
- HotSpot.cs
- CatalogZone.cs
- CodeActivity.cs
- VersionedStream.cs
- EtwTrackingBehaviorElement.cs
- IdentitySection.cs
- LogPolicy.cs
- EntityContainerRelationshipSet.cs
- WindowsListBox.cs
- DnsElement.cs
- PartialCachingAttribute.cs
- OracleFactory.cs
- TextTreeNode.cs
- CatalogZoneBase.cs
- HyperLink.cs
- EntityPropertyMappingAttribute.cs
- XamlVector3DCollectionSerializer.cs
- EnterpriseServicesHelper.cs
- ObfuscationAttribute.cs
- HtmlMeta.cs
- SelectionWordBreaker.cs
- EntityCommandDefinition.cs
- DetailsViewInsertEventArgs.cs
- CompilerGlobalScopeAttribute.cs
- OleStrCAMarshaler.cs
- SerializationTrace.cs
- MsmqProcessProtocolHandler.cs
- UpdatePanel.cs
- RouteParser.cs
- ResourceExpressionBuilder.cs
- ExeConfigurationFileMap.cs
- UnsafeNativeMethodsPenimc.cs
- StackOverflowException.cs
- BaseTemplateCodeDomTreeGenerator.cs
- Comparer.cs
- BlurBitmapEffect.cs
- ContainerSelectorActiveEvent.cs
- PersonalizationStateInfo.cs
- OutputCacheModule.cs
- CompleteWizardStep.cs
- Vector3DKeyFrameCollection.cs
- EntityContainerAssociationSet.cs
- ContextProperty.cs
- Block.cs
- XPathNavigatorKeyComparer.cs
- AlternateView.cs
- GenericsInstances.cs
- TypeDescriptorFilterService.cs
- XmlSchemaException.cs
- InputMethodStateTypeInfo.cs
- DataGridTablesFactory.cs
- SafeProcessHandle.cs
- PartialCachingControl.cs
- UdpChannelFactory.cs
- PropertyInfoSet.cs
- TableSectionStyle.cs
- ItemsPresenter.cs
- SqlGatherProducedAliases.cs
- FixedTextPointer.cs
- AutomationPeer.cs
- IPGlobalProperties.cs
- WindowsToolbar.cs
- GAC.cs
- SocketInformation.cs
- SchemaDeclBase.cs
- ListBindingConverter.cs
- MetabaseServerConfig.cs
- ConstraintManager.cs
- JsonStringDataContract.cs
- XmlSerializerSection.cs
- SeekStoryboard.cs
- InstanceKeyView.cs
- EventDescriptorCollection.cs
- StorageModelBuildProvider.cs
- XmlByteStreamReader.cs
- WindowsAuthenticationEventArgs.cs
- MethodCallTranslator.cs
- BuildProvidersCompiler.cs