关闭

asp.net下OnClientClick的妙用!

478人阅读 评论(0) 收藏 举报

一、

OnClientClick是客户端脚本,一般使用javascript,在客户端,也就是IE中运行,点击后马上执行
OnClick是服务器端事件处理函数,使用C#或者vb.net,在服务器端,也就是IIS中运行,点击按钮后,执行postback,之后再运行。

"先调用了OnClientClick后就没在调用了OnClick事件"
这个问题,我觉得可能是因为OnclientCLick里面发生异常,或者返回了false。      

二、

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


      当我们用模板列做删除数据的时候一般都会返回一个对话框询问用户是否确认,其实我们是通过修改模板列里的button的OnClientClick属性将其值设为 return confirm("你确认删除该条记录吗"); 我们可以分析一下,confirm返回的是个bool值,如果我的button返回的结果也是个bool应该也可以吧,我猜对了,比如有下面一些代码
function judgeUserInput()
{
bool result = true;
if(验证未通过)
{
result = false;
alert("请检查您的输入是否正确");
}
return result;
}
那么我们把button OnClientClick设置成 return judgeUserInput();就可以了!
function validion(regex,elementName,alertStr)
{
var htmlObj = document.getElementById(elementName);
if( htmlObj.value!="" )
{
if(regex.test(htmlObj.value))
{
return true;
}
else{alert(alertStr);
return false;
}
}
if( htmlObj.value=="")
{
return true;
}


}
然后调用的
详细出处参考:http://www.jb51.net/article/9749.htm

三、

示例:

web窗体添加一个服务器控件Button,在它的onClientClick属性中写alert("这是调用客户端");return false,在服务器端事件Button1_Click中写代码Response.Write("这是调用服务器端onclick事件");,点击Button按钮不会调用服务器端事件,但是把onClientClick中的return false去了,执行客户端onClientClick事件后继续执行Button1_Click事件。

 

转自http://blog.163.com/xiao_mege/blog/static/7294275320101079537171/

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:148289次
    • 积分:1666
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:64篇
    • 译文:0篇
    • 评论:8条
    文章分类
    最新评论