Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / HtmlControls / HtmlControl.cs / 2 / HtmlControl.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* HtmlControl.cs
*
* Copyright (c) 2000 Microsoft Corporation
*/
namespace System.Web.UI.HtmlControls {
using System;
using System.Globalization;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.IO;
using System.Web.Util;
using System.Web.UI;
using AttributeCollection = System.Web.UI.AttributeCollection;
using System.Security.Permissions;
/*
* An abstract base class representing an intrinsic Html tag that
* is not represented by both a begin and end tag, for example
* INPUT or IMG.
*/
///
///
/// The
/// class defines the methods, properties, and events
/// common to all HTML Server controls in the Web Forms page framework.
///
///
[
Designer("System.Web.UI.Design.HtmlIntrinsicControlDesigner, " + AssemblyRef.SystemDesign),
ToolboxItem(false)
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
abstract public class HtmlControl : Control, IAttributeAccessor {
internal string _tagName;
private AttributeCollection _attributes;
///
///
protected HtmlControl() : this("span") {
}
///
///
protected HtmlControl(string tag) {
_tagName = tag;
}
/*
* Access to collection of Attributes.
*/
///
///
/// Gets all attribute name/value pairs expressed on a
/// server control tag within a selected ASP.NET page.
///
///
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
]
public AttributeCollection Attributes {
get {
if (_attributes == null)
_attributes = new AttributeCollection(ViewState);
return _attributes;
}
}
/*
* Access to collection of styles.
*/
///
///
/// Gets all
/// cascading style sheet (CSS) properties that
/// are applied
/// to a specified HTML Server control in an .aspx
/// file.
///
///
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
]
public CssStyleCollection Style {
get {
return Attributes.CssStyle;
}
}
/*
* Property to get name of tag.
*/
///
///
/// Gets the element name of a tag that contains a runat=server
/// attribute/value pair.
///
///
[
WebCategory("Appearance"),
DefaultValue(""),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public virtual string TagName {
get { return _tagName;}
}
/*
* Disabled property.
*/
///
///
/// Gets or sets
/// a value indicating whether Disabled attribute is included when a server
/// control is rendered.
///
///
[
WebCategory("Behavior"),
DefaultValue(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
TypeConverter(typeof(MinimizableAttributeTypeConverter))
]
public bool Disabled {
get {
string s = Attributes["disabled"];
return((s != null) ? (s.Equals("disabled")) : false);
}
set {
if (value)
Attributes["disabled"] = "disabled";
else
Attributes["disabled"] = null;
}
}
///
///
///
protected override bool ViewStateIgnoresCase {
get {
return true;
}
}
///
/// [To be supplied.]
///
protected override ControlCollection CreateControlCollection() {
return new EmptyControlCollection(this);
}
/*
* Render the control into the given writer.
*/
///
///
///
protected internal override void Render(HtmlTextWriter writer) {
RenderBeginTag(writer);
}
/*
* Render only the attributes, attr1=value1 attr2=value2 ...
*/
///
///
///
protected virtual void RenderAttributes(HtmlTextWriter writer) {
if (ID != null)
writer.WriteAttribute("id", ClientID);
Attributes.Render(writer);
}
/*
* Render the begin tag and its attributes, <TAGNAME attr1=value1 attr2=value2>.
*/
///
///
///
protected virtual void RenderBeginTag(HtmlTextWriter writer) {
writer.WriteBeginTag(TagName);
RenderAttributes(writer);
writer.Write(HtmlTextWriter.TagRightChar);
}
/*
* HtmlControls support generic access to Attributes.
*/
///
///
///
string IAttributeAccessor.GetAttribute(string name) {
return GetAttribute(name);
}
///
///
///
protected virtual string GetAttribute(string name) {
return Attributes[name];
}
/*
* HtmlControls support generic access to Attributes.
*/
///
///
///
void IAttributeAccessor.SetAttribute(string name, string value) {
SetAttribute(name, value);
}
///
///
///
protected virtual void SetAttribute(string name, string value) {
Attributes[name] = value;
}
internal void PreProcessRelativeReferenceAttribute(HtmlTextWriter writer,
string attribName) {
string url = Attributes[attribName];
// Don't do anything if it's not specified
if (String.IsNullOrEmpty(url))
return;
try {
url = ResolveClientUrl(url);
}
catch (Exception e) {
throw new HttpException(SR.GetString(SR.Property_Had_Malformed_Url, attribName, e.Message));
}
writer.WriteAttribute(attribName, url);
Attributes.Remove(attribName);
}
internal static string MapStringAttributeToString(string s) {
// If it's an empty string, change it to null
if (s != null && s.Length == 0)
return null;
// Otherwise, just return the input
return s;
}
internal static string MapIntegerAttributeToString(int n) {
// If it's -1, change it to null
if (n == -1)
return null;
// Otherwise, convert the integer to a string
return n.ToString(NumberFormatInfo.InvariantInfo);
}
}
}
// 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
- OracleNumber.cs
- PropertyChangingEventArgs.cs
- DirtyTextRange.cs
- RubberbandSelector.cs
- ImportDesigner.xaml.cs
- ListControlStringCollectionEditor.cs
- OdbcConnectionStringbuilder.cs
- Vertex.cs
- InputQueue.cs
- VariableExpressionConverter.cs
- LicenseManager.cs
- SafeBitVector32.cs
- TemplateBuilder.cs
- DesignerSelectionListAdapter.cs
- SizeFConverter.cs
- SelectionPatternIdentifiers.cs
- TextTrailingCharacterEllipsis.cs
- XPathConvert.cs
- MemberDescriptor.cs
- XmlNodeList.cs
- EncodingInfo.cs
- CFGGrammar.cs
- SamlAuthorizationDecisionStatement.cs
- NameValueFileSectionHandler.cs
- SMSvcHost.cs
- ElementHost.cs
- PropertyValue.cs
- Span.cs
- EntityDataSourceReferenceGroup.cs
- ModelItemCollection.cs
- SelectedDatesCollection.cs
- SplashScreen.cs
- Asn1IntegerConverter.cs
- TypeBuilder.cs
- ScriptReferenceEventArgs.cs
- InboundActivityHelper.cs
- AuthenticationModuleElementCollection.cs
- DateTimeOffsetStorage.cs
- NotSupportedException.cs
- SafeHandle.cs
- SpeechEvent.cs
- AttachedAnnotationChangedEventArgs.cs
- XmlSerializerAssemblyAttribute.cs
- TypeConverters.cs
- GeometryHitTestResult.cs
- XamlFigureLengthSerializer.cs
- TcpProcessProtocolHandler.cs
- ReadOnlyCollection.cs
- SqlFormatter.cs
- ImageAutomationPeer.cs
- ChoiceConverter.cs
- RuntimeEnvironment.cs
- PictureBox.cs
- EntityDataSourceDesignerHelper.cs
- EdmError.cs
- PageAsyncTask.cs
- SoapSchemaMember.cs
- TaskFactory.cs
- WindowsListViewGroupHelper.cs
- BitmapEffectInputData.cs
- ScriptDescriptor.cs
- EventLogInternal.cs
- ObjectStateFormatter.cs
- SamlAuthorizationDecisionClaimResource.cs
- DesignerAutoFormat.cs
- StreamGeometryContext.cs
- ConnectionPoint.cs
- IndentTextWriter.cs
- MetabaseServerConfig.cs
- XmlSerializerOperationGenerator.cs
- MetadataArtifactLoaderComposite.cs
- SQLSingle.cs
- MediaScriptCommandRoutedEventArgs.cs
- XslTransform.cs
- WhileDesigner.cs
- XmlSchemaGroup.cs
- CodeVariableReferenceExpression.cs
- Roles.cs
- EventWaitHandleSecurity.cs
- Button.cs
- DataService.cs
- DatagridviewDisplayedBandsData.cs
- DefaultValidator.cs
- RoleServiceManager.cs
- IndividualDeviceConfig.cs
- Input.cs
- RuntimeEnvironment.cs
- Columns.cs
- FileDialogCustomPlacesCollection.cs
- SoapSchemaMember.cs
- XmlAttributeAttribute.cs
- PolyQuadraticBezierSegment.cs
- AccessibleObject.cs
- DelegatingConfigHost.cs
- FrameworkElementFactoryMarkupObject.cs
- RelOps.cs
- StateMachineHelpers.cs
- TextEncodedRawTextWriter.cs
- JoinGraph.cs
- FormsAuthenticationModule.cs