问题:www.cogcn.com里的那些登陆的文本框里有文字,在你选中它的时候(即onfocus事件),把里面的文本清空。
背景:本来我以为很简单,不就加个事件吗?当我用html编辑器的时候,突然发现<asp:TextBox>没有onfocus这个html的事件,当时我非常纳闷。
分析:看了<asp:TextBox>所有的事件后,突然反应过来,它只包含了服务器端的事件。而客户端的时间根本没有。
解决:在PageLoad里加入以下代码:this.TextBox1.Attributes.Add("onfocus","javascript:{document.all."+TextBox1.ClientID+".value='';}"); this.TextBox1.Attributes.Add("value","全文检索");
解释:还需要我解释一下吗?好吧,我简单的说一下吧。onfocus 和value都是客户端的属性或事件,也就是我们要为<asp:TextBox>在生成的<input>的写入的客户端属性。Attributes属性表示:获取与控件的属性不对应的任意特性(只用于呈现)的集合。 它add的东西就是onfocus 和value对应的属性值。ClientID就是TextBox1在生成的客户端环境的id。好了大家应该知道是怎么回事了吧。所以以后再遇到这种在html中很容易实现的东西而在.net里不好实现的话,就用这种方法。
有什么问题给我留言。我会和大家一起讨论,学习,成长的。我现在也还是半只菜鸟。