描述:asp.net中服务器控件Button的点击事件OnClientClick和OnClick的区别?

解答:http://www.cnblogs.com/ypfnet/archive/2012/12/24/2830771.html(作者:代号小子)

一、   二者的区别:

OnClick是button的服务器端事件

OnClientClick是button属性,它里面执行的是js代码,是在客户端运行。

一般我们用 OnClientClick验证我们的提交数据,但是这个一定要返回ture或者false,即一定要加上return,否则在客户端验证失效。如果是true那么就会执行后台的c#代码,页面也会进行提交刷新;否则就不执行,只会执行客户端js代码。

前台代码:

  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="test.WebForm1" %>

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function clickBtn() {
// alert("被点击了!");
// return false; var yesORNo = confirm("确定点击?");
if (yesORNo) {
return true;//如果用户点击“确定”,就返回true,开始执行后台代码!
} else {
return false; //如果用户点击“取消”,就返回false,不执行后台代码!
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button runat="server" ID="btnok" Text="点击" onclick="btnok_Click" OnClientClick="return clickBtn()"/><%--方法1:在控件中添加js代码--%>
<asp:Button runat="server" ID="btnok2" Text="点击2" onclick="btnok_Click" OnClientClick="return confirm('确定?')"/><%--方法2:在控件中添加js代码--%>
</div>
</form>
</body>
</html>

后台代码:

  using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace test
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void btnok_Click(object sender, EventArgs e)
{
Response.Write("这里是后台,按钮被点击了");
}
}
}

二、服务器控件调用js代码

做网页经常要和JavaScript打交道,经常要用JavaScript做一些客户端的验证,但是如果我们的按钮用的是HTML控件的话,验证通过后无法调用后台代码,如果用服务器端控件,验证不通过有要刷新页面,这个有时候挺烦人的,能不能让服务器端的按钮调用客户端的验证,如果验证成功后在调用服务器端的方法,这样既减少了网路传输,给用户感觉也好。 
当我们用模板列做删除数据的时候一般都会返回一个对话框询问用户是否确认,其实我们是通过修改模板列里的button的OnClientClick属性将其值设为 return confirm("你确认删除该条记录吗"); 我们可以分析一下,confirm返回的是个bool值,如果我的button返回的结果也是个bool应该也可以吧,我猜对了,比如有下面一些代码 :

function judgeUserInput() 

bool result = true; 
if(验证未通过) 

result = false; 
alert("请检查您的输入是否正确"); 

return result; 
}

C#学习之按钮点击事件的更多相关文章

  1. Javascript之三种按钮点击事件

    学习Javascript必须要先掌握基本的事件方法和语法,这些都是我们学过的也是最基本的.以前忘了总结,所以现在回顾,综合地总结一下,温故而知新. Javascript有三种按钮点击事件,分别为ale ...

  2. 【Android】按钮点击事件的常用写法

    学习总结: 最近学习了Android点击事件的常用写法.点击事件会触发监听对象身上的回调,常用写法有以下四种: 方法一:使用匿名内部类. public class MainActivity exten ...

  3. js触发按钮点击事件

    js触发按钮点击事件 博客分类: javascript   模拟JS触发按钮点击功能 <html> <head> <title>usually function&l ...

  4. 按钮点击事件,打开新的Activity

    按钮点击事件,打开新Activity, 打开网页 findViewById(R.id.btnStartBAty).setOnClickListener(new View.OnClickListener ...

  5. Objective-C:模拟按钮点击事件理解代理模式

    OC中的协议(Protocol)和和.NET中的接口(Interface)类似,简单来讲,就是一系列方法的列表,其中声明的方法可以被任何类实现.不同的是,在.NET中,如果某个类实现了一个接口,就必须 ...

  6. 【转】Android开发20——单个监听器监听多个按钮点击事件

    原文网址:http://woshixy.blog.51cto.com/5637578/1093936 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律 ...

  7. ButtonAddListener监听按钮点击事件

    ButtonAddListener监听按钮点击事件 using UnityEngine; using System.Collections; using UnityEngine.UI; using U ...

  8. js和jquery触发按钮点击事件

    js触发按钮点击事件 function load(){ //下面两种方法效果是一样的 document.getElementById("target").onclick(); do ...

  9. Android Listview中Button按钮点击事件冲突解决办法

    今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...

随机推荐

  1. C语言学习笔记--指针概念

    指针也是一种变量,占有内存空间,用来保存内存地址,在32位系统中指针的占用的内存大小为4个字节 1.*号的意义 (1)在指针声明时,*号表示所声明的变量为指针 (2)在指针使用时,*号表示取指针所指向 ...

  2. 【260】centos设置root密码

    怎么进Linux单用户模式 http://tieba.baidu.com/p/2216642385 http://jingyan.baidu.com/article/c1a3101ea68dafde6 ...

  3. Yaffs2根文件系统制作

    Yaffs2根文件系统制作 环境: 交叉编译环境:4.4.6 开发平台:s3c2416 1,编译busybox 获取busybox源码busybox-1.17.2.tar (http://www.bu ...

  4. Tornado模板配置

    #!/usr/bin/env python # -*- coding:utf-8 -*- #tornado模板配置 import tornado.ioloop import tornado.web c ...

  5. POJ 1220 高精度/进制转换

    n进制转m进制,虽然知道短除法但是还是不太理解,看了代码理解一些了: 记住这个就好了: for(int k=0;l; ){ for(int i=l ; i>=1 ; i--){ num[i - ...

  6. go install 命令

    go install 命令简介 用于编译并安装代码包或源代码文件 安装代码包会在当前工作区的 'pkg/<平台相关目录>'下生成'归档文件' 安装命令源码文件会在当前工作区的'bin'目录 ...

  7. 关于MySQL隐式转换

    一.如果表定义的是varchar字段,传入的是数字,则会发生隐式转换. 1.表DDL 2.传int的sql 3.传字符串的sql 仔细看下表结构,rid的字段类型: 而用户传入的是int,这里会有一个 ...

  8. 机器学习初探(手写数字识别)HOG图片

    这里我们讲一下使用HOG的方法进行手写数字识别: 首先把 代码分享出来: hog1.m function B = hog1(A) %A是28*28的 B=[]; [x,y] = size(A); %外 ...

  9. Java Calendar 类的时间操作.RP

    JavaCalendar 类时间操作,这也许是创建和管理日历最简单的一个方案,示范代码很简单. 演示了获取时间,日期时间的累加和累减,以及比较. 原文地址:blog.csdn.NET/joyous/a ...

  10. MyBatis基本查询、条件查询、查询排序

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...