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

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

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

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

例:

test()为一javascript函数.

    <script type="text/javascript">        function test() {            var value = document.getElementById("<%=t1.ClientID%>").value;            if (value == "") {                alert("不能为空值");                return false;            }        }    </script>

t1为一文本框,判断输入内容是否为空

<asp:TextBox ID="t1" runat="server"></asp:TextBox>

        <asp:Button ID="Button1" runat="server" Text="提交"  OnClientClick="return test()" οnclick="Button1_Click"  />

需要注意的是当我们当击这个按钮时,自动先执行的客户端,再执行服务器端的.如果客户端返回的是false,那么服务器端对应的方法永远不会执行.这样就达到检测,只有通过才去执行服务器端的方法.

也就是说如果我们上面写成:

        <asp:Button ID="Button1" runat="server" Text="提交"  OnClientClick="test();return false" οnclick="Button1_Click"  />

那么不管test()执行的结果如何.服务器端对应的Button1_Click方法都永远不会执行.因为return false使得始终使客户端返回false

如果我们写成:

        <asp:Button ID="Button1" runat="server" Text="提交"  OnClientClick="test()" οnclick="Button1_Click"  />

那么Button1_Click都有会发生.同样也就达不到效果.也就是说你没有通过检测也去执行服务器的方法了.

我们还可以通过Button1.Attributes.Add("onclick", "test()");的方法来触发客户端事件。

以上内容完全摘录自huang_qy前辈的博客,仅供自己和他人学习使用,上面讲得很细致,菜鸟受教了,感谢。

转载于:https://www.cnblogs.com/CuiPengfei19911014/p/3182229.html

基础知识收藏(ASP.NET的OnClientClick与OnClick事件)-2013.07.10相关推荐

  1. Asp.net 中 OnClientClick 与 OnClick 的执行顺序

    Asp.net 中 OnClientClick 与 OnClick 的执行顺序为:客户端的OnClientClick先执行,服务器端的OnClick后执行. 拓展:在执行完客户端的OnClientCl ...

  2. js按钮触发网页提醒_js触发asp.net的Button的Onclick事件应用

    在asp.net引入事件驱动之后,在一个页面上很容易解决多个按钮触发不同事件的问题,避免了在asp中需要多个form或者通过js脚本来控制的麻烦. asp.net带来便利的同时,也带来一个问题.在实际 ...

  3. Asp.Net中OnClientClick与OnClick

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

  4. js触发asp.net的Button的Onclick事件

    在asp.net引入事件驱动之后,在一个页面上很容易解决多个按钮触发不同事件的问题,避免了在asp中需要多个form或者通过js脚本来控制 的麻烦. asp.net带来便利的同时,也带来一个问题.在实 ...

  5. 前端基础知识 - 收藏集 - 掘金

    破解前端面试(80% 应聘者不及格系列):从 DOM 说起 - 掘金 共 7384 字,读完需 10 分钟.本文为<破解前端面试(80% 应聘者不及格系列)>文章的第二篇,包含 DOM.E ...

  6. 【基础知识】ASP.NET[基础一(ashx)]

    一.ASP.NET介绍 1.ASP.NET包括: 一般处理程序(ashx):WebForm ( aspx ):MVC(Model view con~~): 2.ASP.NET的常用文件(重点): 1& ...

  7. HtmlCSS 基础知识

    Html 基础知识Html 基础知识Html 基础知识Html 基础知识Html 基础知识Html 基础知识Html 基础知识Html 基础知识Html 基础知识Html 基础知识Html 基础知识H ...

  8. javascript的基础知识

    /*module("基础知识测试-Math函数用法", {  setup : function() {   ok(true, "基础知识测试-Math函数用法-开始&qu ...

  9. iptables的基础知识-iptables中的状态检测

    2019独角兽企业重金招聘Python工程师标准>>> iptables的基础知识-iptables中的状态检测:iptabels被认为是Linux中实现包过滤功能的第四代应用程序. ...

最新文章

  1. CentOS7下ntp安装步骤
  2. win7卡在正在启动windows界面_win7如何重装ie8
  3. ASP入门(十三)-Server对象
  4. jQuery常用技巧
  5. gateway sentinel 熔断 不起作用_Sentinel 的一些概念与核心类介绍
  6. 《Linux内核设计与实现》读书笔记(十八)- 内核调试
  7. php结合redis实现高并发下的抢购、秒杀功能
  8. 数据结构之判断一棵树是不是完满二叉树
  9. java中的extends_Java中的继承
  10. Echart词云图自定义形状,少词显示不全,配置项相关设置
  11. 数仓OLAP(一)--即席查询 Kylin
  12. IP 库的那些事儿之 2013 - 2014 流水帐版
  13. daimayuan每日一题#863 吃糖果
  14. 怎么把音乐从电脑传到苹果手机?电脑mp3导入苹果手机
  15. 解决Playbook不能充电的问题
  16. 自动驾驶系列(一) - 自动驾驶系统涉及哪些技术
  17. 小芭比linux怎么装win7_Linux系统怎么安装Win7?安装XP或WIN7系统教程
  18. Module-Huey任务队列
  19. 输出组成的倒三角图案
  20. 总结了 200 道 BAT 机器学习面试题,值得收藏 (附参考答案)

热门文章

  1. 《机器学习》 梯度下降
  2. myeclipse10.7激活
  3. Setting up Pytorch with Python 3 on Ubuntu(Source code compilation)
  4. linux中ramdisk的使用
  5. 35岁前务必成功的12级跳
  6. 1.5 使用new创建动态结构和自动, 静态, 动态三种存储方式
  7. git 撤销全部的commit_git 撤销commit
  8. openFeign 服务接口的调用02—— openFeign 的使用步骤
  9. List集合与List的子类
  10. 块级元素 Vs 内联元素