//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ /* * HtmlInputControl.cs * * Copyright (c) 2000 Microsoft Corporation */ namespace System.Web.UI.HtmlControls { using System; using System.ComponentModel; using System.Web; using System.Web.UI; using Debug=System.Web.Util.Debug; using System.Security.Permissions; /* * An abstract base class representing an intrinsic INPUT tag. */ /// /// /// The abstract class defines /// the methods, properties, and events common to all HTML input controls. /// These include controls for the <input type=text>, <input /// type=submit>, and <input type=file> elements. /// /// [ ControlBuilderAttribute(typeof(HtmlEmptyTagControlBuilder)) ] abstract public class HtmlInputControl : HtmlControl { private string _type; /* * Creates a new Input */ /// /// Initializes a new instance of the class. /// protected HtmlInputControl(string type) : base("input") { _type = type; // VSWhidbey 546690: Need to add the type value to the Attributes collection to match Everett behavior. Attributes["type"] = type; } /* * Name property */ /// /// /// Gets the value of the HTML /// Name attribute that will be rendered to the browser. /// /// [ WebCategory("Behavior"), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public virtual string Name { get { return UniqueID; //string s = Attributes["name"]; //return ((s != null) ? s : String.Empty); } set { //Attributes["name"] = MapStringAttributeToString(value); } } // Value that gets rendered for the Name attribute internal virtual string RenderedNameAttribute { get { return Name; //string name = Name; //if (name.Length == 0) // return UniqueID; //return name; } } /* * Value property. */ /// /// /// Gets or sets the contents of a text box. /// /// [ WebCategory("Appearance"), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public virtual string Value { get { string s = Attributes["value"]; return((s != null) ? s : String.Empty); } set { Attributes["value"] = MapStringAttributeToString(value); } } /* * Type of input */ /// /// /// Gets the Type attribute for a particular HTML input control. /// /// [ WebCategory("Behavior"), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public string Type { get { string s = Attributes["type"]; if (!string.IsNullOrEmpty(s)) { return s; } return((_type != null) ? _type : String.Empty); } } /* * Override to render unique name attribute. * The name attribute is owned by the framework. */ /// /// /// protected override void RenderAttributes(HtmlTextWriter writer) { writer.WriteAttribute("name", RenderedNameAttribute); Attributes.Remove("name"); bool removedTypeAttribute = false; string type = Type; if (!String.IsNullOrEmpty(type)) { writer.WriteAttribute("type", type); Attributes.Remove("type"); removedTypeAttribute = true; } base.RenderAttributes(writer); if (removedTypeAttribute && DesignMode) { Attributes.Add("type", type); } writer.Write(" /"); } } }