我想在页面加载事件的特定条件下显示模态弹出窗口,但它现在正在工作。
这是我的modalPopup:
<script type="text/javascript">
function openModal(message, header, url) {
$('#myModal').modal('show');
$('#lblMasterMessage').html(header);
$('#lblMasterbodyMessage').html(message);
$('#myModal').on('hidden.bs.modal', function(e) {
if (url != '') {
window.location = url;
}
});
}
</script>
<asp:Content ID="Content2" ContentPlaceHolderID="BodyContentPlaceHolder" runat="Server">
<div class="modal fade" id="myModal" runat="server">
<div class="modal-dialog">
<div class="modal-content" style="width: 400px; margin: 0 auto;">
<div class="modal-header" runat="server">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span></button>
<h4 class="modal-title">
<label id="lblMasterMessage"></label>
</h4>
</div>
<div class="modal-body">
<label id="lblMasterbodyMessage"></label>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal" runat="server">Close</button>
</div>
</div>
</div>
</div>
</asp:Content>
从Backend调用模式弹出窗口:
protected void Page_Load(object sender, EventArgs e)
{
if (dt.Rows.Count > 0)
{
BindGrid();
}
else
{
string message = "Files are not Generated!";
string header = "Info";
ScriptManager.RegisterStartupScript(this, this.GetType(), "popup","openModal('" + message + "','" + header + "','MemberHomePage.aspx');", true);
//ScriptManager.RegisterStartupScript(this, this.GetType(), "popup", "alert('Business Operation Files are not Generated!'); window.location ='MemberHomePage.aspx';", true);
}
}
当条件满足时,我无法显示弹出窗口。任何帮助将不胜感激。
答案 0 :(得分:1)
div
表示模式在服务器上运行,因此ASP.NET生成它的ID。这意味着,在呈现页面时,模态的ID不是myModal
,而是类似ctl00_Content2_myModal
。
因此,jQuery可以在线找到你的div
$('#myModal').modal('show');
将该行更改为
$('#<%= myModal.ClientId %>').modal('show');
或尝试按其类名访问div
,例如$(".modal")
修改的:
您尝试通过ID找到的其他控件也会遇到同样的问题,例如lblMasterMessage
,lblMasterbodyMessage
等。
答案 1 :(得分:0)
你可以试试这个
no