惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Recent Announcements
Recent Announcements
L
LangChain Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
D
Docker
WordPress大学
WordPress大学
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MongoDB | Blog
MongoDB | Blog
博客园 - Franky

博客园 - hfyb

用Themes实现网站换肤 .NET学习资源收集 如何将关系数据库(sql sever2005)中的表结构转化为XML架构进而生成XML文件??? 恢复数据库后,恢复原来数据用户的权限 说一点自己的想法 使用Web Part创建个性化的ASP.NET 2.0应用程序 Site Picks : 优秀Pick Sites集锦 防止用'or''=''or'登陆后台 如何制作windows登陆窗口?? 如何实现网页中动态切换的flash广告 - hfyb - 博客园 为 asp.net 2.0 的菜单控件增加 target 属性 Visual Studio 2005 的 101 个示例 --MSDN 用 System.Xml 读写XML 整理文档 - hfyb 发送email - hfyb - 博客园 如何恢复无法修复的Visual Studio 的破损文件 如何实现网页中的浮动广告 - hfyb - 博客园 [转].net的25个小技巧 javascript常用小技巧[转] ASP.NET程序中常用的三十三种代码 [转] - hfyb - 博客园
通过自定义控件实现文本框获得输入焦点时的状态
hfyb · 2007-05-12 · via 博客园 - hfyb

         昨天看了李华顺的博客里的一片关于通过JS实现文本框获得输入焦点时的状态 ,感觉挺不错的,正好自己对自定义WEB控件这一块不熟悉,就试着参照他的文章写了一个简单的自定义控件。实在太菜了!高手多多指点!!
         1.首先我们先创建一个WEB控件库
         2.在生成的CS文件中添加代码,将下面的代码添加到CS中:

 1using System;
 2using System.Collections.Generic;
 3using System.ComponentModel;
 4using System.Text;
 5using System.Web;
 6using System.Web.UI;
 7using System.Web.UI.WebControls;
 8
 9namespace MyWebControlLibrary1
10{
11    [DefaultProperty("Text")]
12    [ToolboxData("<{0}:MyTextBox runat=server></{0}:MyTextBox>")]
13    public class MyTextBox : TextBox
14    {
15        [Bindable(true)]
16        [Category("Appearance")]
17        [DefaultValue("")]
18        [Localizable(true)]
19        public string Text
20        {
21            get
22            {
23                String s = (String)ViewState["Text"];
24                return ((s == null? String.Empty : s);
25            }

26
27            set
28            {
29                ViewState["Text"= value;
30            }

31        }

32        
33        public string FocusCssClass//控件获得焦点时的CSS
34        {
35            get
36            {
37                object obj = this.ViewState["FocusCssClass"];
38                if (obj != null)
39                {
40                    return (string)obj;
41                }

42                return "";
43            }

44            set
45            {
46                this.ViewState["FocusCssClass"= value;
47            }

48        }

49
50        protected override void OnInit(EventArgs e)
51        {
52            base.Attributes.Add("OnFocus""JavaScript:this.className = '" + this.FocusCssClass + "';");
53            base.Attributes.Add("OnBlur""JavaScript:this.className = '" + this.CssClass + "';");
54
55            base.OnInit(e);
56        }

57
58
59        protected override void RenderContents(HtmlTextWriter output)
60        {
61            output.Write(Text);
62        }

63    }

64}

65

最后右击生成,这样就生成了自己的WEB控件了!呵呵,太简单了! 是不是?
生成完了以后你会发现同时在工具箱里也添加了这个控件,现在你可以新建一个页面,然后托进去试试。

哦,在使用的时候注意这个自定义控件的多了一个自定义的属性FocusCssClass,这个属性是文本框获得焦点时的CSS样式,而本身自带的CssClass则是失去焦点时的CSS样式。现在你可以自己随便写一个样式表,自己随意定义自己喜欢的文本框获得焦点和失去焦点时的样式!!

源码下载点这里