当前位置:编程学习 > C#/ASP.NET >>

服务器控件的onclick 和 onclientclick事件的迷惑

aspx页面上我放了一个div(html),属性设置为display:none,页面上还有一个button(runat=server),它的onclick事件要执行一个功能,当然势必要引发页面重新加载,它的onclientclick事件里面,我写了段脚本代码,实现这个div的属性display:block,并且使用了setTimeout,控制它刚显现出来的时候背景颜色变换一下(引起浏览者注意),问题出来,当我点击按钮的时候,div背景色还没来得及变化,就消失了???/
该怎么做呢?? --------------------编程问答-------------------- 1、OnClientClick是调用客户端的JS函数, 而OnClick用于调用后台服务器端的函数 
2、OnClientClick先于OnClick执行 ,

OnClientClick执行完以后,立即执行OnClick --------------------编程问答-------------------- 如果onclientclick对应脚本没有返回false,就会马上执行onclick对应处理

你的div只是要改变一下,然后就变回来?

建议:onclentclick对应的脚本返回一个confirm啊... --------------------编程问答-------------------- 学习了。。。
以前只知道OnClientClick是调用客户端的JS函数, 而OnClick用于调用后台服务器端的函数
后面的哪个先执行就不清楚了 --------------------编程问答-------------------- onlick时发生postback,执行后台代码。 
onclientclick,就是执行javascipt代码,不会发生postback. 

简单说,onclick:执行C#代码, onclientclick:执行javascript代码。

onclientclick先于onclick发生,一般执行脚本

onclientclick() 控制客户端提交。 
例如可以使用confirm('是否执行?') 

return true:执行onlick事件。 
return false:什么都不干。

再得来说:
OnClick是button的服务器端事件

OnClientClick是button的客户端事件

一般我们用 OnClientClick验证我们的提交数据,但是这个一定要返回ture或者false,即一定要加上return,否则OnClick失效。当返回false时OnClick服务器端事件才被中止,当你的js验证有错误,也会跳过验证,直接执行服务器端事件OnClientClick。为了避免这样的错误,可以考虑用服务端验证这样就省去了OnClientClick事件,就不用考虑和OnClick的冲突了 --------------------编程问答--------------------
引用楼主 shengforever 的回复:
aspx页面上我放了一个div(html),属性设置为display:none,页面上还有一个button(runat=server),它的onclick事件要执行一个功能,当然势必要引发页面重新加载,它的onclientclick事件里面,我写了段脚本代码,实现这个div的属性display:block,并且使用了setTimeout,控制它刚显现出来的时候背景颜色变换一下(引起浏览者注意),问……

如果一个button,你定义了onclientclick,又定义了click事件,你点击了button,会先做clientclick事件,然后做click事件。 --------------------编程问答-------------------- [img=http://][/img]顶 --------------------编程问答-------------------- onclientclick调用脚本函数
onclick执行后台点击事件

onclientclick先于onclick执行 --------------------编程问答-------------------- OnClientClick必须return true 才会触发服务器事件
OnClientClick="this.value='请稍侯...';this.disabled=true;return true;"   
function Set(id) {
            var el = document.getElementById(id);
            setTimeout("document.getElementById('" + id + "').disabled = false;", 5000);
        }
--------------------编程问答-------------------- 先执行onclientclick事件,然后执行onclick事件 --------------------编程问答-------------------- onclientclick调用前台的事件
onclick执行后台点击事件
字面上也好理解 --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- onclientclick onclick事件怎么执行 执行顺序我都知道 现在问题是要实现这个功能该如何做呢  --------------------编程问答-------------------- 这个就要看你的具体需求了。。。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,