我的 aspx 页面中有一个弹出窗口,我想根据 javascript 必须满足的条件打开它。我遇到的问题是,无论我尝试什么,我似乎都无法让 modalpopupextender 工作。
我尝试过使用 PageMethods、_doPostBack() 和 $Find(PopupClientId).Show();
以上似乎都不起作用,我也不知道为什么。
这是我的 JavaScript。
function RequotePopup(popup, status) {
if (status = true) {
var thePopup = document.getElementById(popup);
thePopup.style.visibility = "visible";
} else {
alert("Please select a record for Re-Quote");
}
}
function checkGridView() {
var hdnCheckboxIDs = document.getElementById("ctl00_ContentPlaceHolder1_hdnCheckboxID");
var arrCheckboxIDs = hdnCheckboxIDs.value.split(",");
var checked = false;
for (var i = 0; i < arrCheckboxIDs.length; i++) {
if (arrCheckboxIDs[i] != "") {
var ckbItem = document.getElementById(arrCheckboxIDs[i]);
if (ckbItem != null) {
if (ckbItem.checked == true) {
checked = true;
}
}
}
}
if (checked == true) {
//var modal = $find('<%= ReQuoteBtn_ModalPopupExtender.ClientID %>');
//modal.show();
PageMethods.ShowExtender();
ShowPopup('RequotePopup');
} else {
alert("Please select a record for Re-Quote");
}
}
这是我的 ASP.Net。
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
<asp:Button ID="ReQuoteBtn" runat="server" Text="Re-Quote" OnClientClick="Javascript:checkGridView()"
CssClass="Sales" />
<asp:ModalPopupExtender ID="ReQuoteBtn_ModalPopupExtender" runat="server" DynamicServicePath=""
BackgroundCssClass="modalBackground" Enabled="True" BehaviorID="RequoteModal" PopupControlID="RequotePopup"
TargetControlID="ReQuoteBtn" OnCancelScript="cmdCancelrq">
</asp:ModalPopupExtender>
最佳答案
我不确定您是否尝试过此操作,但如果您通过 BehaviorID 找到 ModalPopupExtender,它应该会起作用。
由于您的 BehaviorID 是 RequoteModal,让我们试试这个示例:
显示弹出窗口
$find('RequoteModal').show();
隐藏弹窗
$find('RequoteModal').hide();
编辑:
我刚刚注意到您为 ModalPopupExtender 设置了 Enabled="False"
,这将不允许模态框调用 show() 方法,您可能会收到错误消息这样的“无法获取未定义或空引用的属性‘show’”。
请删除该设置并重试。
关于javascript - 使用 JavaScript 打开 ModalPopupExtender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21849731/