为TextBox增加隐藏属性,Value属性

//代码如下
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("&quot;");
       break;
      case '<':
       retVal.Append("&lt;");
       break;
      case '>':
       retVal.Append("&gt;");
       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);
   
  }

 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值