如何在asp.net中实现备用确认框。
<asp:LinkButton ID="btndelete" runat="server" CommandArgument='<%#Eval("ID")%>' CommandName="delete" CssClass="glyphicon glyphicon-trash" data-toggle="popover" data-placement="top" OnClientClick="return ConfirmDelete();" data-content="Delete this record"></asp:LinkButton>
<script type="text/javascript">
function ConfirmDelete()
{
bootbox.confirm("Are you sure?", function (result)
{
if (result)
{
return true;
} else
{
return false;
}
});
}
</script>
但它无效...服务器端事件触发(回发)在确认框按钮单击之前。
答案 0 :(得分:2)
几天后我就开始工作并检查各种来源了。 我在GridView中有一个LinkButton。
ASPX
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="lnkBtnDelete" runat="server" CssClass="mylink" CausesValidation="false" Text="Delete" OnClick="lnkBtnDelete_Click"> </asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
在GridView OnRowDatabound事件中,将OnClientClick属性设置为Javascript以调用bootbox模式对话框。需要注意的重要事项是转义的单引号,我正在传递LinkButton的UniqueID。 (因此,将为GridView中的所有行调用此方法并传递正确的Id。)
后面的代码中的GridView1_RowDataBound
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridViewRow gvrow = ((GridViewRow)e.Row);
LinkButton lnkBtnDelete = gvrow.FindControl("lnkBtnDelete") as LinkButton;
lnkBtnDelete.OnClientClick = "return confirmDelete(this,\'" + lnkBtnDelete.UniqueID + "\');";
}
}
confirmDelete Javascript函数显示bootbox确认对话框。取消将仅关闭模式窗体而不运行LinkButton单击事件,但确认按钮将运行与LinkButton关联的内置Javascript回发事件。如果将鼠标悬停在LinkButton上,您将看到正在调用的事件,因为我们传入了UniqueID,所以它会在GridView中的每一行都正确设置。
<强>的Javascript 强>
function confirmDelete(sender, uniqueID) {
if ($((sender)[0]).attr("confirmed") == "true") { return true; }
bootbox.confirm("Are you sure you want to delete?", function (confirmed) {
if (confirmed) {
var link = $(sender)[0];
//javascript: __doPostBack('BuildingCodeCompliance2$GridView1$ctl02$lnkBtnDelete', '');
javascript: __doPostBack(uniqueID, '');
}
});
return false;
}
LinkButton_Click事件将只有您的常规删除功能。
LinkButton点击代码
protected void lnkBtnDelete_Click(object sender, EventArgs e)
{
LinkButton lnk = sender as LinkButton;
GridViewRow gvrow = lnk.NamingContainer as GridViewRow;
// Delete your record here
}
答案 1 :(得分:0)
我刚刚为mvc4实现了它,我希望我的代码对你有所帮助。
你走了,
JavaScript代码:
$('#delClass')。click(function(){
bootbox.confirm("Hello world!", function(result) {
if (result) {
alert("Prompt dismissed");
} else {
alert("Hi <b>"+result+"</b>");
}
});
});
我的名字是,
“=&gt; li id =”delClass“&gt;删除
DelClass是一个Id,如果你想在那里添加一个类名,那么你可以在该代码中添加“.youclassname”。