zoukankan      html  css  js  c++  java
  • OnClientClick和OnClick的区别

           最近发现两个特别相近的客户端事件,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 来"屏蔽"服务端的校验!好处是什么? 就是不用刷新页面呀!

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

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

  • 相关阅读:
    python操作excel表格
    重学Java
    重学Java
    重学Java
    重学Java
    重学Java
    博客园自定义主题及目录组件
    重学Java
    修改 Eclipse 背景颜色的高级方法
    dbf转excel
  • 原文地址:https://www.cnblogs.com/xzpblog/p/5117922.html
Copyright © 2011-2022 走看看