综合

img Dxh_Asp_Net

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

发表于2004/9/29 13:57:00  856人阅读

分类: 组件

//代码如下
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

相关文章推荐

img
取 消
img