码迷,mamicode.com
首页 > 其他好文 > 详细

OnClientClick和OnClick的区别

时间:2015-07-13 22:28:37      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

       最近发现两个特别相近的客户端事件,OnClientClick和OnClick,都是点击事件,又有什么区别呢?
首先我们要了解这两个事件:

       OnClientClick是客户端事件方法.一般采用JavaScript来进行处理.也就是直接在IE端运行.一点击就运行.


       OnClick事件是服务器端事件处理方法,在服务器端,也就是IIS中运行.点击按钮后,执行postback,再运行.


       如果一个按钮上我们同时有客户端的OnClientClick方法又有OnClick事件处理方法,如何才能按照正常的逻辑运行呢.


      OnClientClick中我们常用来做一些客户端的检测.当然放在服务器也可以做同样的检测,但这样做的代价是与服务器进行交互,消耗资源,而且用户体验不好...

      比如说:Button有:OnClick事件和OnClientClick属性,前者一般就是服务端的点击事件!后者则是客户端的点击事件!

     我们来做一个测试!在Default.aspx页面中添加如下代码!

<strong><span style="font-size:18px;">  <script language="javascript" type="text/javascript">
           function buttonClick() {
               alert("我是客户端点击事件");
               return false;     
          }
  </script></span></strong>


<form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Text="些Button是服务端控件,默认使用OnClientClick事件,请禁用浏览器的Js功能体验"
            OnClick="Button1_Click" OnClientClick="return buttonClick();" />
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </div>

</form>
cs类代码:
protected void Button1_Click(object sender, EventArgs e)
{
    this.Label1.Text = "我是服务端点击事件";
}
     

     大家运行看看是什么效果?  你可能会发现,只弹出了JS中的代码! 没错,这正是我们想要的效果,通过return false 来"屏蔽"服务端的校验!好处是什么? 就是不用刷新页面呀!

     你再把浏览器的脚本功能禁用了,你再试一试,看看又是什么效果?

     通过又重校验就能确保用户的非法录入,这正是我们想要的结果!

版权声明:本文为博主原创文章,未经博主允许不得转载。

OnClientClick和OnClick的区别

标签:

原文地址:http://blog.csdn.net/u010158267/article/details/46867547

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!