Javascript Bootbox确认:返回客户端结果以便执行回发到rowCommand

Javascript Bootbox确认:返回客户端结果以便执行回发到rowCommand,javascript,c#,asp.net,gridview,bootbox,Javascript,C#,Asp.net,Gridview,Bootbox,在bootbox之前,我在gridview中的aspx文件上做了这项工作 <asp:Button ID="btnDelete" CssClass="btn btn-danger" OnClientClick="if(!confirmDelete()) return false;" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" CausesValidation="false"

在bootbox之前,我在gridview中的aspx文件上做了这项工作

<asp:Button ID="btnDelete" CssClass="btn btn-danger" OnClientClick="if(!confirmDelete()) return false;" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" CausesValidation="false" CommandName="DeleteRow" Text="Delete"/>
确认后,将触发gridview的RowCommand并完成删除

有了bootbox,我真的被卡住了。我知道bootbox是异步的,并尝试使用“preventDefault”,但它不起作用。那么如何将上面的js文件转换为bootbox版本呢?
提前感谢。

我终于想出了这个解决方案

function confirmDelete(sender) {
    if ($(sender).attr("confirmed") == "true") {return true;}

    bootbox.confirm("Are you sure you want to delete?", function (confirmed) {
        if (confirmed) {
            $(sender).attr("confirmed", confirmed).trigger("click");
        }
    });

return false;
}
更改按钮的OnClientClick

OnClientClick="return confirmDelete(this);"
我尝试过这个解决方案,但需要再次单击才能执行回发,所以我更改了
发送者的
触发器(“单击”)
。单击()

编辑

function confirmDelete(sender) {
    if ($(sender).attr("confirmed") == "true") {return true;}

    bootbox.confirm("Are you sure you want to delete?", function (confirmed) {
        if (confirmed) {
            $(sender).attr('confirmed', confirmed);
            sender.click();
        }
    });

return false;
}

我在代码中做了一些更改,我使用了
回调:
来调用函数

我还为bootbox modal添加了一些设计

function confirmDelete(sender) {
          if ($(sender).attr("confirmed") == "true") { return true; }

          bootbox.confirm({
          message: "Are you sure you want to delete?",
          buttons: {
              confirm: {
                  label: 'Yes',
                  className: 'btn btn-success'
              },
              cancel: {
                  label: 'No',
                  className: 'btn btn-danger'
              }
          }
          ,callback: function (confirmed) {
              if (confirmed) {
                  $(sender).attr('confirmed', confirmed);
                  sender.click();
              }
          }});

          return false;
      }
function confirmDelete(sender) {
          if ($(sender).attr("confirmed") == "true") { return true; }

          bootbox.confirm({
          message: "Are you sure you want to delete?",
          buttons: {
              confirm: {
                  label: 'Yes',
                  className: 'btn btn-success'
              },
              cancel: {
                  label: 'No',
                  className: 'btn btn-danger'
              }
          }
          ,callback: function (confirmed) {
              if (confirmed) {
                  $(sender).attr('confirmed', confirmed);
                  sender.click();
              }
          }});

          return false;
      }