OnClientClick是在前端执行的代码,也就是在xx.js中
Onclick是在后端执行的代码,也就是在xx.cs中
<asp:Button ID="btnGenerateQuote" runat="server" CssClass="button2" Text="<%$resx:xxx%>" OnClientClick = "return GenerateQuote();" OnClick="btnGenerateQuote_Click" />
这里想要实现的功能是:根据OnClientClick的返回值,判断是否执行OnClick中的代码,一开始的想法是
function GenerateQuote() { alertlConfirm(_c.toMessage('提示:是否XXX?'), function () { return true; }, function () { return false; }); return false; }
发现根本就没有判断js里的值,直接返回false
(最后一行这个return false不写的话,默认是返回true,那么就是不判断,直接执行onclick中的代码)
原因:js是单线程,直接执行完语句不会回调
解决方法:添加一个回调函数
function GenerateQuote() { alertlConfirm(_c.toMessage('提示:是否XXX?'), function () { //第一个参数是按钮名,第二个参数是Onclick方法 __doPostBack("btnGenerateQuote", 'btnGenerateQuote_Click'); return true; }, function () { return false; }); return false; }
到此这篇关于ASP.NET中Onclick与OnClientClick遇到的问题的文章就介绍到这了,更多相关ASP.NET Onclick与OnClientClick问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源链接:https://www.jb51.net/aspnet/339801rfo.htm
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容