我们经常感叹于Asp.net中的服务器控件的易用,基于事件机制的web应用程序编写的方便。但是强大的服务器控件偶尔也会给初学者带来一些困惑,比如button按钮的onClick事件是一个服务器端的事件,假如我们想在客户端处理button按钮的单击事件呢?值得庆幸的是:.net专门为Button、ImageButton、LinkButton三种按钮添加了OnClientClick属性,如果要在客户端执行某个方法,可以直接给OnClientClick属性赋值,但是其它没有该项属性的控件要想执行客户端事件的话又该如何处理呢?这里提供两种解决方案:
1、以声明方式指定客户端事件处理程序
比如:<asp:TextBox ID=”TextBox1” runat=”server” οnkeyup=”……”/>
onkeyup并不是TextBox服务器控件的一个属性,当asp.net处理到这条语句时,它会让onkeyup这部分代码成为转译成html代码的一部分即形如:<input type=”textbox” οnkeyup=”……”/>
2、以编程的方式指定客户端事件处理程序
这里得用到服务器控件的Attribute属性,示例如下:
TextBox1.Attributes.Add(“onkeyup”,”JsFunctionName(params);”);
或者
TextBox1.Attributes[“onkeyup”]=“javascript:alert(‘aa’);”;