文档章节

ASP.NET的OnClientClick与OnClick事件

ADP大灰狼
 ADP大灰狼
发布于 2014/11/01 17:31
字数 479
阅读 9
收藏 0

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()" onclick="Button1_Click"  />

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

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

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

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

如果我们写成:

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

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

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


本文转载自:http://blog.163.com/huang_qy/blog/static/615601452012101535413943/

ADP大灰狼
粉丝 9
博文 13
码字总数 3192
作品 0
唐山
程序员
私信 提问
ASP.NET服务器控件与客户端控件OnClientClick和OnClick的用法比较

OnClientClick和OnClick的用法比较 无标题页 先执行客户端的javascript函数,页面回送以后再执行服务器端的方法 onclientclick是客户端事件,onclick是服务器端事件。并且客户端事件先执行,...

长平狐
2013/01/06
523
0
Asp.Net 不同区别的 OnClick ( onserverclick, onclientclick )

Asp.Net 不同区别的 OnClick ( onserverclick, onclientclick ) 下面以 HTML的按钮( system.web.ui.htmlcontrols ) 和 ASP.NET服务端按钮 ( system.web.ui.webcontrols ) 为例: 1. H......

长平狐
2013/01/06
96
0
asp.net 2.0中的弹出对话框

在asp.net 1.1中,要做1个弹出的对话框的话,一般是在服务端的代码中这样写: btnClick.Attributes.Add("onclick", "return confirm('Are you sure?');"); 现在在ASP.NET 2.0中,只要使用客户......

晨曦之光
2012/03/09
28
0
注册或者点击按钮时,怎么防止用户重复提交数据(实例讲解)

这篇文章主要是对注册或者点击按钮时,怎么防止用户重复提交数据进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 asp.net实现点击按钮后设按钮不可用并提交 代码如下:

linghangp
2013/12/16
262
0
Asp.Net服务器控件添加OnClientClick属性绑定

出处:http://www.itwis.com/html/net/aspnet/20101111/9533.html Asp.Net服务器控件添加OnClientClick属性绑定,在应用Asp.net服务器控件时经常会用到OnClientClick执行脚本的问题,今天就遇...

冰点沐雪
2012/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Shell学习成果之一键自动安装Mysql8.0

实验环境 系统:CentOS7.7.1908 MySql:mysql-8.0.18-el7-x86_64.tar.gz 一键安装脚本如下(可直接复制粘贴为shell脚本,与MySQL安装包放到同一目录;如果没有下载安装包就取消第26行的注释会...

网络小虾米
32分钟前
4
0
X-MSG-IM-系统依赖的第三方library编译

X-MSG-IM系统核心网元编译时依赖较多第三方库, 较为繁琐. 这是为了在部署时更方便, 更少地依赖宿主系统环境. 除非你知道自己在做什么, 否则不要变更这些库的版本. zlib-1.2.11编译 wget htt...

x-msg-im
今天
6
0
电磁兼容谐波电流测试怎么做?看完这篇文章90%的人都能明白

在正式学习谐波电流测试之前,先给大家分享一个故事: 1807年时年39岁的法国数学家傅里叶于法国科学学会上展示了一篇论文"热的传播"(Mémoire sur la propagation de la chaleur),论文中有个...

demyar
今天
3
0
数据管理必看!Kendo UI for jQuery过滤器的全球化

Kendo UI for jQuery最新试用版下载 Kendo UI目前最新提供Kendo UI for jQuery、Kendo UI for Angular、Kendo UI Support for React和Kendo UI Support for Vue四个控件。Kendo UI for jQue......

FILA6666
今天
4
0
ES6基础入门之let、const

作者 | Jeskson 来源 | 达达前端小酒馆 01 首先呢?欢迎大家来学习ES6入门基础let,const的基础知识内容。初始ECMA Script6。 ESMAScript与JavaScript的关系: ES是JS的标准(ES是对ECMAScr...

达达前端小酒馆
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部