使用c#在服务器端的pageload事件上打开模式弹出窗口

时间:2017-07-26 10:35:34

标签: javascript c# jquery asp.net twitter-bootstrap

我想在页面加载事件的特定条件下显示模态弹出窗口,但它现在正在工作。

这是我的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">&times;</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);
     }
}

当条件满足时,我无法显示弹出窗口。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

div表示模式在服务器上运行,因此ASP.NET生成它的ID。这意味着,在呈现页面时,模态的ID不是myModal,而是类似ctl00_Content2_myModal

因此,jQuery可以在线找到你的div

$('#myModal').modal('show');

将该行更改为

$('#<%= myModal.ClientId %>').modal('show');

或尝试按其类名访问div,例如$(".modal")

修改的: 您尝试通过ID找到的其他控件也会遇到同样的问题,例如lblMasterMessagelblMasterbodyMessage等。

答案 1 :(得分:0)

你可以试试这个

no