查看: 72|回覆: 0

ASP.NET中Onclick与OnClientClick遇到的问题

[複製鏈接]

3

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-1-22
發表於 2025-4-17 10:41:34 | 顯示全部樓層 |閲讀模式

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;
}
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部