Bootbox 确认:return 客户端结果,以便回发到 rowCommand
Bootbox confirm: return client result in order to do postback to rowCommand
在 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"/>
和 js 文件;
function confirmDelete() {
return confirm("Are you sure you want to delete the record?"); }
确认后,触发 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);"
我试过 Fatih Bilginer 解决方案,但它需要再次点击才能进行回发,所以我将 .trigger("click")
更改为 sender.click();
EDIT
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;
}
我对 dannyzar 代码做了一些更改,我使用 callback:
调用函数
并且我已经为 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;
}
在 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"/>
和 js 文件;
function confirmDelete() {
return confirm("Are you sure you want to delete the record?"); }
确认后,触发 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);"
我试过 Fatih Bilginer 解决方案,但它需要再次点击才能进行回发,所以我将 .trigger("click")
更改为 sender.click();
EDIT
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;
}
我对 dannyzar 代码做了一些更改,我使用 callback:
调用函数
并且我已经为 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;
}