为TextBox增加隐藏属性,Value属性
发表于:2007-06-30来源:作者:点击数:
标签:
//代码如下 using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; using System.Text; namespace DXH.Web.UI.WebControls { public enum TextBoxMode{ SingleLine = 0, MultiLine = 1, Pass
//代码如下
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Text;
namespace DXH.Web.UI.WebControls
{
public enum TextBoxMode{
SingleLine = 0,
MultiLine = 1,
Password = 2,
Hidden = 3
}
/// <summary>
/// TextBox 的摘要说明。
/// </summary>
[ToolboxData("<{0}:TextBox runat=server></{0}:TextBox>")]
public class TextBox : System.Web.UI.WebControls.TextBox
{
[Browsable(false)]
public override System.Web.UI.WebControls.TextBoxMode TextMode
{
get
{
return base.TextMode;
}
set
{
base.TextMode = value;
}
}
[Description("自定义文本框的行为模式"),DefaultValue(0),Browsable(true),Category("Behavior")]
public TextBoxMode Mode{
get
{
object textMode = this.ViewState["TextMode"];
if (textMode != null)
{
return ((TextBoxMode) textMode);
}
return TextBoxMode.SingleLine;
}
set
{
if ((value < TextBoxMode.SingleLine) || (value > TextBoxMode.Hidden))
{
throw new ArgumentOutOfRangeException("value");
}
this.ViewState["TextMode"] = value;
if(value == TextBoxMode.Hidden)
this.TextMode = (System.Web.UI.WebControls.TextBoxMode)TextBoxMode.SingleLine;
else
this.TextMode = (System.Web.UI.WebControls.TextBoxMode)value;
}
}
[Description("对Text修正后的值"),DefaultValue(""),Browsable(true),Category("Appearance")]
public string Value{
get{return InputText(base.Text,base.MaxLength);}
}
private string InputText(string inputString, int maxLength)
{
StringBuilder retVal = new StringBuilder();
if ((inputString != null) && (inputString != String.Empty))
{
inputString = inputString.Trim();
if (0 != maxLength && inputString.Length > maxLength)
inputString = inputString.Substring(0, maxLength);
for (int i = 0; i < inputString.Length; i++)
{
switch (inputString[i])
{
case ‘’"‘’:
retVal.Append(""");
break;
case ‘’<‘’:
retVal.Append("<");
break;
case ‘’>‘’:
retVal.Append(">");
break;
default:
retVal.Append(inputString[i]);
break;
}
}
retVal.Replace("‘’", "‘’‘’");
}
return retVal.ToString();
}
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
if(this.Mode == TextBoxMode.Hidden)
{
writer.AddStyleAttribute("display", "none");
writer.AddAttribute(HtmlTextWriterAttribute.Type,"hidden");
}
base.AddAttributesToRender(writer);
}
}
}
原文转自:http://www.ltesting.net