我有一个asp.net按钮,当我单击该按钮时,我将div显示为模态弹出窗口,例如,确认dailog。在确认列表中,如果用户单击“是”,则将执行按钮服务器事件。我在下面的代码中尝试过
<form id="form1" runat="server">
<div id="modalPopUp" class="modal fade" role="dialog">
<div class="modal-dialog" style="width: 400px">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<span id="spnTitle"></span>
</h4>
</div>
<div class="modal-body">
<p>
<span id="spnMsg"></span>.
</p>
</div>
<div class="modal-footer">
<asp:Button type="button" ID="btnConfirm" class="btn btn-danger" runat="server" Text="Yes"
OnClick="btnDelete_Click"></asp:Button>
<button type="button" class="btn btn-default" data-dismiss="modal">NO</button>
</div>
</div>
</div>
</div>
<asp:Button runat="server" ID="btnDelete" Text="Delete" CssClass="btn btn-danger" OnClientClick="return getConfirmation(this, 'Please confirm','Are you sure </br> you want to delete?');"
OnClick="btnDelete_Click"/>
<br />
<asp:Literal ID="litMsg" runat="server"></asp:Literal>
</form>
protected void btnDelete_Click(object sender, EventArgs e)
{
//Write the code here to delete the record
litMsg.Text = "Record deleted successfully";
}
<script type="text/javascript">
function getConfirmation(sender, title, message) {
$("#spnTitle").text(title);
$("#spnMsg").html(message);
//$('#modalPopUp').modal({ backdrop: 'static', keyboard: false });
$('#modalPopUp').modal({ keyboard: false });
//$('#btnConfirm').attr('onclick', "$('#modalPopUp').modal('hide');setTimeout(function(){" + $(sender).prop('href') + "}, 50);");
var fClose = function () {
$('#modalPopUp').modal('hide');
};
$("#btnDelete").unbind().one("click", fClose);
return false;
}
</script>
当我单击删除按钮时,它显示确认对话框,是,没有按钮。当我单击否时,对话框关闭。当我单击“是”时,没有任何反应。我的要求是我想执行发送方(传递给getConfirmation函数)按钮单击服务器事件。请指导我哪里做错了。
您必须允许按钮的“ onclick”事件执行PostBack。这将引导您进入BackEnd(C#)代码。您可以通过向按钮添加AllowPostBack
属性来执行此操作。但是当您执行回发时页面会刷新。它将消失您的模型。
在这种情况下,最好的解决方案是使用ajax请求访问后端代码。