Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / WebControls / ControlParameter.cs / 3 / 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;
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, 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 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.
//------------------------------------------------------------------------------
//
// 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;
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, 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 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CustomError.cs
- MetaForeignKeyColumn.cs
- MsmqIntegrationSecurity.cs
- ReferenceEqualityComparer.cs
- GeneralTransformGroup.cs
- LinkLabelLinkClickedEvent.cs
- DirectoryInfo.cs
- CellIdBoolean.cs
- ComplexLine.cs
- HttpModuleActionCollection.cs
- IsolationInterop.cs
- TableLayout.cs
- XslAst.cs
- RectangleF.cs
- TcpChannelHelper.cs
- UriTemplateTrieNode.cs
- base64Transforms.cs
- DataGridViewImageColumn.cs
- UntypedNullExpression.cs
- FileDialogCustomPlace.cs
- FaultReasonText.cs
- XsltInput.cs
- CancellationHandlerDesigner.cs
- ModuleBuilderData.cs
- NamedObject.cs
- OptimisticConcurrencyException.cs
- IntersectQueryOperator.cs
- TextEncodedRawTextWriter.cs
- GeneratedCodeAttribute.cs
- FrameworkContentElement.cs
- SizeAnimation.cs
- Resources.Designer.cs
- WebConfigurationFileMap.cs
- OdbcParameter.cs
- IPipelineRuntime.cs
- DataGridViewComboBoxColumn.cs
- SByte.cs
- SessionViewState.cs
- _NtlmClient.cs
- Parameter.cs
- PositiveTimeSpanValidatorAttribute.cs
- TrackBarRenderer.cs
- WebServiceTypeData.cs
- DynamicRenderer.cs
- ConvertersCollection.cs
- Util.cs
- SqlConnectionStringBuilder.cs
- TimelineGroup.cs
- ButtonColumn.cs
- GetCryptoTransformRequest.cs
- RenamedEventArgs.cs
- MessageBuilder.cs
- ImageListStreamer.cs
- SourceSwitch.cs
- WindowsScrollBarBits.cs
- TrackingServices.cs
- Pair.cs
- DetailsViewCommandEventArgs.cs
- PreviewPageInfo.cs
- CallSiteHelpers.cs
- FormViewUpdateEventArgs.cs
- DataBoundLiteralControl.cs
- MessageSmuggler.cs
- SystemIcmpV4Statistics.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- DataBoundControlActionList.cs
- Fault.cs
- ValueTypePropertyReference.cs
- HtmlUtf8RawTextWriter.cs
- CssStyleCollection.cs
- ToolStripItemEventArgs.cs
- ConfigurationLockCollection.cs
- SpoolingTask.cs
- XmlSchemaComplexContentExtension.cs
- ContextMenuStripGroupCollection.cs
- NetSectionGroup.cs
- SiteMapDataSourceView.cs
- LinqDataSourceView.cs
- Point3DKeyFrameCollection.cs
- DefaultValueAttribute.cs
- NamespaceDecl.cs
- ImageSourceValueSerializer.cs
- COAUTHINFO.cs
- ZoneMembershipCondition.cs
- DbProviderFactory.cs
- WebConfigurationManager.cs
- ChangePasswordDesigner.cs
- TypeNameConverter.cs
- EntityContainerRelationshipSetEnd.cs
- PerformanceCounter.cs
- SQLStringStorage.cs
- CompositeDesignerAccessibleObject.cs
- XmlDataDocument.cs
- WebUtil.cs
- DocumentAutomationPeer.cs
- IntranetCredentialPolicy.cs
- UrlPropertyAttribute.cs
- _ListenerRequestStream.cs
- AspNetSynchronizationContext.cs
- XPathItem.cs