使用 SweetAlert2 替换 ASP.Net 按钮上的“返回确认()”

2023-12-03

在 ASP.Net 中工作时,我经常喜欢问“你确定吗?”单击删除按钮等内容时会弹出窗口。这很容易完成,如下所示:

<asp:Button runat="server" id="btnDelete" Text="Delete" onClientClick="return confirm('Are you sure?');" onClick="btnDelete_Click" />

我真的很喜欢 SweetAlert2 确认对话框的样式和总体感觉,但是当我尝试以类似的方式集成它们时,它们似乎有点麻烦。有人可以向我解释一下如何根据单击的按钮返回 SweetAlert2 对话框结果以继续或停止吗?

这是我到目前为止所得到的:

<asp:Button runat="server" id="btnDelete" Text="Delete" onClientClick="return sweetAlertConfirm();" onClick="btnDelete_Click" />
    function sweetAlertConfirm() {
        event.preventDefault();
        swal({
            title: 'Are you sure?',
            text: "You won't be able to revert this!",
            type: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: 'Yes, delete it!'
//      }).then(function() {
//          CONFIRM WAS CHOSEN
//      }, {function() {
//          CANCEL WAS CHOSEN
        });
    }

当然,对话框出现并且删除未被处理,因为我目前正在做一个event.preventDefault()并且没有返回任何内容。我也注意到我可以使用承诺,添加一个.then()在我之后swal({...}),但是我不确定在这种情况下如何使用它。

如果需要,我可以使用实际上触发代码隐藏方法的隐藏按钮,然后根据用户选择单击该隐藏按钮,但我希​​望避免这种情况。


由于 SweetAlert2 对话框是异步处理的,因此当承诺得到解决时,您必须以编程方式触发另一个按钮单击。您可以重复使用,而不是创建隐藏按钮btnDelete通过设置一个标志来表明该操作已被确认。当处理第二次单击时,将检测到该标志,并且将允许按钮单击继续并触发服务器事件。

<asp:Button ... OnClientClick="return sweetAlertConfirm(this);" OnClick="btnDelete_Click" />
function sweetAlertConfirm(btnDelete) {
    if (btnDelete.dataset.confirmed) {
        // The action was already confirmed by the user, proceed with server event
        btnDelete.dataset.confirmed = false;
        return true;
    } else {
        // Ask the user to confirm/cancel the action
        event.preventDefault();
        swal({
            title: 'Are you sure?',
            text: "You won't be able to revert this!",
            type: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: 'Yes, delete it!'
        })
        .then(function () {
            // Set data-confirmed attribute to indicate that the action was confirmed
            btnDelete.dataset.confirmed = true;
            // Trigger button click programmatically
            btnDelete.click();
        }).catch(function (reason) {
            // The action was canceled by the user
        });
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SweetAlert2 替换 ASP.Net 按钮上的“返回确认()” 的相关文章

随机推荐

  • 将地图图钉添加到 Google 地图 Android 的最佳方法

    我已成功添加图钉 但当用户单击地图并提供新位置时需要刷新图钉 我收到错误 请记住 我需要在后台发生此操作 以便它不会影响地图交互 我的问题是 当用户单击地图时 地图图钉列表已经更新 我得到一个ConcurrentModificationEx
  • 使用 HTML5 设置视频播放时长

    我有一个使用 TimeJump js 的简单 HTML5 视频播放器 http davatron5000 github io TimeJump 以允许直接跳转到特定时间代码 IE 跳转到视频的第 25 分钟 我想添加对视频播放时长的限制 因
  • 上传文件[重复]

    这个问题在这里已经有答案了 可能的重复 如何在网页上实现文件上传进度条 Hello 我见过很多网页 用户可以上传文件 并且会得到某种进度作为视觉反馈 水平条 百分比等 我的 html 表单是
  • 通过连接传播 pandas 系列元数据

    我希望能够将元数据附加到一系列数据帧 特别是原始文件名 以便在加入两个数据帧后我可以看到有关每个系列来自何处的元数据 我看到 github 问题有关 metadata here here 包括一些与当前相关的 metadata属性 here
  • 从 .odt 文件填充 QTextDocument

    我正在使用 C 和 Qt 编写一个富文本编辑器 目前 我希望它支持 至少 odt 格式 我发现 QTextDocumentWriter 用于将 QTextDocument 的内容写入文件 但我似乎找不到任何东西可以将其读回到 QTextDo
  • 从类外部访问类属性

    假设我有以下课程 class MyClass public function Talk Say Something return Say 然后我启动了该类的一个实例 Inst new MyClass 现在 我如何在 MyClass 之外调用
  • Pandas 非常简单 分组总大小的百分比

    我在看似极其简单的操作中遇到了麻烦 通过诸如此类的操作从组中获取总数百分比的最简洁方法是什么df groupby col1 size 分组后我的 DF 看起来像这样 我只想要总数的百分比 我记得过去使用过此语句的变体 但现在无法使其工作 p
  • PHP 短标签可以使用吗?

    这是信息根据官方文档 有四对不同的 可以是开始和结束标签 在 PHP 中使用 其中两个 and 随时可用 另外两个 是短标签和 ASP 样式标签 并且 可以从打开和关闭 php ini 配置文件 像这样 虽然有些人发现短标签并且 ASP风格
  • 如何防止过度打字

    我正在尝试用 C 制作一个简单的聊天应用程序 它可以工作 但是 如果有人在其他人打字时输入某些内容 它就像写了他们正在输入的内容 我链接了图片作为下面的示例 我用于客户端和服务器的代码可以在这里找到 Client Server 图片 Bef
  • Python:获取插入符位置[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在尝试获取 Python 中的插入符号位置 我尝试使用win32gui GetCaretPos 但它总是返回 0 0 您有什么想法让它发挥作用吗 谢谢 克里斯 如果插入符号位于另
  • 在 C# 中显示数据库中列表框中的项目

    我有一个包含两个表的数据库Countries and Websites 我使用以下语句显示 listbox1 中的所有国家 地区名称 try connection Open using OleDbCommand command new Ol
  • Php 西里尔字符串长度加倍其值

    你好 这是问题所在 当我到达 POST 拉丁字符串 strilen 时效果很好 但是当我到达西里尔字符串 strlen 时其值加倍 这里是代码 word POST word echo strlen word br input abc gt
  • 使用 Eval 在 TemplateField 中显示毫秒

    我有一个提交的模板 如下所列 我还需要显示日期时间的毫秒部分 我读过有关dateValue ToString fff 格式为http msdn microsoft com en us library bb882581 aspx How to
  • iPhone 版的PasswordDeriveBytes(.net 2.0)

    我想在iPhone中使用 NET 2 0的PasswordDeriveBytes RSA PBKDF1 我怎样才能实现同样精确的实现 有没有相关的方法或库 我特别想要它使用盐 Thanks 由于 MS 实现并不完全遵循 PKCS 5 规范
  • android 画廊进入网格样式菜单

    大家好 请帮我解决有关 android 中的菜单的问题 我想将此画廊作为我的应用程序的网格菜单 请指导我如何将名称放在图像下方 如果我单击特定图像 则应打开新活动 最后单击菜单按钮将我带回主屏幕 here is the image 这是代码
  • 当服务器使用 pm2 重新启动时启动 Node JS 应用程序

    我正在尝试使用该模块pm2每次服务器启动时启动我的 Node js 应用程序 我已经使用了命令pm2 startup ubuntu但每次我重新启动服务器时 我的应用程序都没有运行 我必须再次手动启动它 有什么想法导致这个问题吗 确保保存您的
  • Windows 7 中管理员用户的 SQL Server 2008 数据库引擎登录失败 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我从 sadegh 用户在 Windows 7 Ultimate 上安装了 SQL Server 2008 Enterprise Edition 该帐户以管理员角色存在 几天后 我从
  • Java - 如何将我的 ArrayList 写入文件,并将该文件读取(加载)到原始 ArrayList?

    我正在用 Java 编写一个程序 它显示一系列课后俱乐部 例如足球 曲棍球 由用户输入 俱乐部被添加到以下ArrayList private ArrayList
  • 根据特定列标题提取 HTML 表 - Python

    我正在尝试从以下内容中提取 html 表URL 例如 第 44 页的 2019 年董事薪酬表 我相信该表没有特定的 id 例如 薪酬表 等 要提取该表 我只能想到匹配的列名称或关键字 例如 股票奖励 或 所有其他补偿 然后抓取关联的表 有没
  • 使用 SweetAlert2 替换 ASP.Net 按钮上的“返回确认()”

    在 ASP Net 中工作时 我经常喜欢问 你确定吗 单击删除按钮等内容时会弹出窗口 这很容易完成 如下所示