То, что вы видите ниже, является упрощением моей веб-страницы, но этого достаточно, чтобы объяснить проблему. У меня есть веб-форма с 2 различными модалами внутри, в одном из которых у меня есть ajaxToolkit: AsyncFileUpload. После нескольких тестов я обнаружил, что этот элемент управления запрещает эту команду в коде: ScriptManager.RegisterStartupScript (this, GetType (), "popup", "$ ('# ModalForm'). Modal ()", true);.
Я не могу заставить модал появляться из выделенного кода, но та же команда, используемая в строке строки в виде сетки, работает и может открыть модал.
Я не могу понимаю, как это исправить, но когда я удаляю ajaxToolkit: AsyncFileUpload со страницы, кнопка работает отлично, и появляется модальный.
<head runat="server">
<title></title>
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" />
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true"></asp:ScriptManager>
<asp:LinkButton ID="btnShowAddModal" runat="server" class="btn btn-outline-primary" OnClick="btnShowAddModal_Click"><i class="fas fa-plus-square"></i> Add New</asp:LinkButton>
<!-- Modal Upload-->
<div class="modal fade" id="ModalUpload" tabindex="-1" role="dialog" aria-labelledby="ModalUploadTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<div class="modal-header">
<h5 class="modal-title" id="UploadModalLongTitle">Upload Attachment</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group">
<ajaxToolkit:AsyncFileUpload ID="FileUpload1" runat="server" />
<asp:LinkButton runat="server" ID="lbAddAttach"></asp:LinkButton>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
<!-- Modal Insert -->
<div class="modal fade" id="ModalForm" tabindex="-1" role="dialog" aria-labelledby="ModalFormTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg" role="document">
<div class="modal-content">
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header">
<h5 class="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<asp:Button ID="btnInsert" runat="server" CssClass="btn btn-primary" Text="Insert" OnClick="btnInsert_Click" ValidationGroup="vI" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</form>
</body>
</html>
protected void btnShowAddModal_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this, GetType(), "popup", "$('#ModalForm').modal()", true);//show the modal;
}
protected void btnInsert_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "Pop", "$('#ModalForm').modal('hide');", true);
}