ASP.NET组建(1) ASP.net 组合控件 Label TextBox

原创 2006年05月31日 16:20:00

using System;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.ComponentModel;

using System.Drawing;

 

namespace Component_Test

{

     /// <summary>

     /// LabelTextBox 的摘要说明。

     /// </summary>

     public class LabelTextBox: System.Web.UI.WebControls.WebControl

     {

         private Label label = new Label();//创建一个标签

         private TextBox textBox = new TextBox();//创建一个文本框

         private Color focus_forecolor = Color.White ;//得到焦点的前景颜色

         private Color blur_forecolor = Color.Black ;//得到焦点的前景颜色

         private Color focus_backcolor = Color.Blue ;//得到焦点的背景颜色

         private Color blur_backcolor = Color.White ;//得到焦点的背景颜色

         private Unit label_width;

         private Unit textbox_width;

         private Font label_font;   

         private Font textbox_font; 

 

         private const string MOUSE_SCRIPT = //用来触发事件的脚本

              "<script language=javascript>/n" +

              "    function LTFocus(ctrl,ffc,fbc)/n" + //当控件得到焦点时,调用该方法,ctrl为表格

              "    {/n" +

              "        ctrl.style.color = ffc;/n" +

              "        ctrl.style.backgroundColor = fbc;/n" +

              "    }/n" +

              "    function LTBlur(ctrl,bfc,bbc)/n" +

              "    {/n" +

              "        ctrl.style.color = bfc;/n" +

              "        ctrl.style.backgroundColor = bbc;/n" +

              "    }/n" +

              "</script>/n";

 

         protected override void OnPreRender(EventArgs e)

         {

              //将脚本输出到页面中.

              if(!Page.IsClientScriptBlockRegistered("mousescript")) //防止重复输出.

              {

                   Page.RegisterClientScriptBlock("mousescript",MOUSE_SCRIPT);

              }

              base.OnPreRender (e);

         }

         protected override void Render(HtmlTextWriter writer)

         {

              this.EnsureChildControls ();

              base.Render (writer);

         }

         //其中focus_backcolor是自定义属性。

         //这一步的全部代码如下:

         private void CreateControls()//创建控件以及设置控件的相关属性

         {

              //定义一个表对象

              Table t = new Table();

              t.ID = this.ID + "_table";

              //添加鼠标事件

              this.textBox .Attributes.Add("onfocus","LTFocus("+t.ID+",'" + this.focus_forecolor.Name + "','" + this.focus_backcolor.Name + "')");

              this.textBox .Attributes.Add("onblur","LTBlur("+t.ID+",'"

+ this.blur_forecolor.Name + "','" + this.blur_backcolor.Name + "')");

              //添加样式,用来控制字体

              t.Attributes .Add("onfocus","LTFocus("+t.ID+",'" + this.focus_forecolor.Name + "','" + this.focus_backcolor.Name + "')");

              t.Attributes .Add("onblur","LTBlur("+t.ID+",'" + this.blur_forecolor.Name + "','" + this.blur_backcolor.Name + "')");

              t.Style.Add("font-size","12px");

              //添加一行

              TableRow tr = new TableRow();

              //添加两个单元格

              TableCell tc1 = new TableCell();

              TableCell tc2 = new TableCell();

              tc1.Style.Add ("width","50px");

              tc2.Style.Add ("width",((double)(this.textBox.Width .Value + 10)).ToString ());

              //将控件添加到Controls集中.

              tc1.Controls.Add(label);

              tc2.Controls.Add(textBox);

              tr.Controls.Add(tc1);

              tr.Controls.Add(tc2);

              t.Controls.Add(tr);

              this.Controls.Add(t);          

         }

        

         public Color focus_BackColor

         {

              get{return focus_backcolor;}

              set{focus_backcolor = value;}

         }

         public Color blur_BackColor

         {

              get{return this.blur_backcolor;}

              set{this.blur_backcolor = value;}

         }

         public Color focus_ForeColor

         {

              get{return this.focus_forecolor;}

              set{this.focus_forecolor = value;}

         }

         public Color blur_ForeColor

         {

              get{return this.blur_forecolor;}

              set{this.blur_forecolor = value;}

         }

         public Unit Label_Width

         {

              get{return this.label_width;}

              set{this.label_width = value;}

         }

         public Unit TextBox_Width

         {

              get{return this.textbox_width;}

              set{this.textbox_width = value;}

         }

         public Font Label_Font

         {

              get{return this.label_font ;}

              set{this.label_font = value;}

         }

         public Font TextBox_Font

         {

              get{return this.textbox_font ;}

              set{this.textbox_font = value;}

         }

         public string LabelString

         {

              get{return label.Text;}

              set{label.Text = value;}

         }

         public string TextBoxString

         {

              get{return textBox.Text;}

              set{textBox.Text = value;}

         }

         //这一步需要重写 CreateChildControls() 方法,该方法会自动被调用,用来生成子控件。

         protected override void CreateChildControls()

         {

              this.EnsureChildControls();//如果子控件没有创建,则创建

              base.CreateChildControls ();//调用方法

              CreateControls();

         }

     }

}

 

 

文本服务器控件(标签Label控件和文本框(TextBox)控件)

第一个实例: 总体的布局图: 布局实现代码:                             请在文本框中输...
  • gz153016
  • gz153016
  • 2015年10月17日 17:24
  • 1130

asp.net 子页面使用js给ReadOnly的TextBox赋值

主页面 前台代码:
  • nvhaixx
  • nvhaixx
  • 2016年11月30日 11:28
  • 453

asp.net中给TextBox文本框添加水印,不影响正常使用

具体代码如下: 填写备忘录信息 function watermark(id, value) { var obj = document.ge...
  • yangmingxing980
  • yangmingxing980
  • 2014年03月24日 11:19
  • 1246

UserControl自定义控件系列一:Label+TextBox组合控件

分享本人对UserControl自定义控件的研究,主要针对多个控件组合为一个控件,展示控件显示风格的与众不同,我还没真正成为一位程序员,纯属业余,不过我具备了程序员一样的特点--很懒,写一些小程序供自...
  • jsjyyjs07
  • jsjyyjs07
  • 2014年01月20日 22:07
  • 12452

asp.net控件与JavaScript实现TextBox获取焦点时出现日历

asp.net控件与JavaScript实现TextBox获取焦点时出现日历 效果:当光标落入TextBox中,其下出现日历.日历是asp.net 的日历控件. (1)aspx中代码: Ja...
  • u012709815
  • u012709815
  • 2014年03月28日 00:12
  • 1032

ASP.NET输入文本框自动提示功能

在ASP.NET Web开发中会经常用到自动提示功能,比如百度搜索。我们只要输入相应的关键字,就可以自动得到相似搜索关键字的提示,方便我们快速的输入关键字进行查询。那么在ASP.NET中,如果我们需要...
  • guwei4037
  • guwei4037
  • 2013年12月21日 22:47
  • 8475

asp.net TextBox文本框背景透明+浅色背景文字提示

效果图 login_img_03.png login_img_09.png .usre_name{ width:240px; height:38px; line-height...
  • qq285679784
  • qq285679784
  • 2016年04月07日 19:11
  • 2741

ASP.Net数据绑定控件小结

数据绑定作为ASP.Net中较为重要的一个知识点,其中涉及到了三个重要的数据绑定控件,Repeater DataList 和GridView(DataGrid)。 Repeater控件:   特点: ...
  • zllaptx4869
  • zllaptx4869
  • 2013年10月09日 21:59
  • 1705

html中input type="text" 的readonly 属性与asp.net服务器控件TextBox的readonly属性的js赋值、调用的小bug

我还是个刚刚入门的程序猿与大家分享下最近我做的一个项目,如有错误,请大师们指点一二! HTML: ...
  • yzm910823
  • yzm910823
  • 2013年12月18日 16:03
  • 1376

【Asp.net之旅】--数据绑定控件之ListView

对于数据绑定控件来说Repeater控件是最基础的了,它因为最原始所以受到广大开发人员的喜爱,对有经验程序员来说在开发时往往采用Repeater,因为它使用灵活,稳定,不会产生恶意代码,并且效率高。对...
  • zhang_xinxiu
  • zhang_xinxiu
  • 2014年04月05日 08:21
  • 14496
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET组建(1) ASP.net 组合控件 Label TextBox
举报原因:
原因补充:

(最多只允许输入30个字)