博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#学习之按钮点击事件
阅读量:5126 次
发布时间:2019-06-13

本文共 1577 字,大约阅读时间需要 5 分钟。

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

解答:(作者:代号小子)

一、   二者的区别:

OnClick是button的服务器端事件

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

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

前台代码:

1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="test.WebForm1" %> 2  3  4  5  6  7      8     21 22 23     
24
25
<%--方法1:在控件中添加js代码--%>26
<%--方法2:在控件中添加js代码--%>27
28
29 30

 

后台代码:

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7  8 namespace test 9 {10     public partial class WebForm1 : System.Web.UI.Page11     {12         protected void Page_Load(object sender, EventArgs e)13         {14 15         }16         protected void btnok_Click(object sender, EventArgs e)17         {18             Response.Write("这里是后台,按钮被点击了");19         }20     }21 }

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

     做网页经常要和JavaScript打交道,经常要用JavaScript做一些客户端的验证,但是如果我们的按钮用的是HTML控件的话,验证通过后无法调用后台代码,如果用服务器端控件,验证不通过有要刷新页面,这个有时候挺烦人的,能不能让服务器端的按钮调用客户端的验证,如果验证成功后在调用服务器端的方法,这样既减少了网路传输,给用户感觉也好。 

当我们用模板列做删除数据的时候一般都会返回一个对话框询问用户是否确认,其实我们是通过修改模板列里的button的OnClientClick属性将其值设为 return confirm("你确认删除该条记录吗"); 我们可以分析一下,confirm返回的是个bool值,如果我的button返回的结果也是个bool应该也可以吧,我猜对了,比如有下面一些代码 :

function judgeUserInput() 
bool result = true; 
if(验证未通过) 
result = false; 
alert("请检查您的输入是否正确"); 
return result; 

转载于:https://www.cnblogs.com/lishidefengchen/p/3421168.html

你可能感兴趣的文章
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
如何在Access2007中使用日期类型查询数据
查看>>
CF992E Nastya and King-Shamans(线段树二分+思维)
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
linux install ftp server
查看>>
嵌入式软件设计第8次实验报告
查看>>
算法和数据结构(三)
查看>>
Ubuntu下的eclipse安装subclipse遇到没有javahl的问题...(2天解决了)
查看>>