Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / ControlParameter.cs / 1305376 / ControlParameter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.ComponentModel; using System.Data; using System.Web.UI.WebControls; ////// Represents a Parameter that gets its value from a control's property. /// [ DefaultProperty("ControlID"), ] 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, database type, /// control ID, and property name. /// public ControlParameter(string name, DbType dbType, string controlID, string propertyName) : base(name, dbType) { 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 internal 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.ComponentModel; using System.Data; using System.Web.UI.WebControls; ////// Represents a Parameter that gets its value from a control's property. /// [ DefaultProperty("ControlID"), ] 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, database type, /// control ID, and property name. /// public ControlParameter(string name, DbType dbType, string controlID, string propertyName) : base(name, dbType) { 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 internal 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; } } } // 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
- Region.cs
- TextTreeExtractElementUndoUnit.cs
- WindowsScrollBarBits.cs
- BooleanFunctions.cs
- RankException.cs
- AsymmetricKeyExchangeFormatter.cs
- Page.cs
- SecurityToken.cs
- SymbolTable.cs
- TakeOrSkipWhileQueryOperator.cs
- DataMisalignedException.cs
- WindowsScroll.cs
- CheckBox.cs
- TargetInvocationException.cs
- WebConfigurationManager.cs
- ExternalCalls.cs
- DataBindingCollection.cs
- RequestResizeEvent.cs
- CodeTypeParameterCollection.cs
- HttpCookie.cs
- PropertyChangingEventArgs.cs
- DateBoldEvent.cs
- shaperfactory.cs
- StaticDataManager.cs
- XmlCompatibilityReader.cs
- ListCollectionView.cs
- HtmlUtf8RawTextWriter.cs
- TagMapInfo.cs
- XmlProcessingInstruction.cs
- WindowsListViewItemCheckBox.cs
- FontUnitConverter.cs
- OleDbSchemaGuid.cs
- UInt16.cs
- TraceProvider.cs
- CompiledRegexRunner.cs
- LinkClickEvent.cs
- CompilerError.cs
- MemoryFailPoint.cs
- TableParagraph.cs
- TypeValidationEventArgs.cs
- ConfigurationCollectionAttribute.cs
- BridgeDataReader.cs
- RemoteWebConfigurationHostStream.cs
- BitmapEffectGeneralTransform.cs
- DataComponentGenerator.cs
- CachingHintValidation.cs
- Exceptions.cs
- ResolveNameEventArgs.cs
- ComEventsInfo.cs
- RtfFormatStack.cs
- JsonServiceDocumentSerializer.cs
- DateTimeStorage.cs
- DataGridHeaderBorder.cs
- FrameDimension.cs
- InkPresenter.cs
- ButtonFlatAdapter.cs
- DesignerHelpers.cs
- Win32Exception.cs
- DrawListViewColumnHeaderEventArgs.cs
- SafeNativeMethods.cs
- SqlServer2KCompatibilityCheck.cs
- CancelAsyncOperationRequest.cs
- Part.cs
- FormatConvertedBitmap.cs
- XsltException.cs
- StrokeCollectionConverter.cs
- MultipartContentParser.cs
- FieldTemplateFactory.cs
- TypeBuilderInstantiation.cs
- AsmxEndpointPickerExtension.cs
- WebPartZoneCollection.cs
- FileNotFoundException.cs
- DataGridViewCheckBoxCell.cs
- ChannelServices.cs
- ExpressionBuilder.cs
- TripleDESCryptoServiceProvider.cs
- TemplateField.cs
- WsatExtendedInformation.cs
- ConnectivityStatus.cs
- FormViewAutoFormat.cs
- ComponentTray.cs
- XmlSchemaImport.cs
- SQLInt32.cs
- CompiledQuery.cs
- CodeAttributeDeclaration.cs
- Util.cs
- QueryStringConverter.cs
- ToolBarTray.cs
- ToolStripRenderer.cs
- ToolBarTray.cs
- TextServicesProperty.cs
- SkinBuilder.cs
- AlphaSortedEnumConverter.cs
- MetadataItemEmitter.cs
- IPAddress.cs
- CodeArrayIndexerExpression.cs
- Parser.cs
- SqlBuilder.cs
- VisualBrush.cs
- ApplicationDirectory.cs