【问题标题】:Opening ModalPopupExtender Using JavaScript使用 JavaScript 打开 ModalPopupExtender
【发布时间】:2014-03-17 23:13:56
【问题描述】:

我的 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>

【问题讨论】:

  • 您是否检查了对 AjaxControlToolkit 的引用并可能删除/重新添加它,只是为了确定?
  • 我知道 AjaxControlToolkit 之所以有效,是因为网站的大多数页面都在使用它。

标签: javascript asp.net vb.net


【解决方案1】:

我不确定您是否尝试过,但如果您通过 BehaviorID 找到 ModalPopupExtender,它应该可以工作。

由于您的 BehaviorID 是 RequoteModal,让我们试试这个示例:

显示弹出窗口

$find('RequoteModal').show();

隐藏弹出窗口

$find('RequoteModal').hide();

编辑:

我刚刚注意到您为 ModalPopupExtender 设置了Enabled="False",这将不允许模态调用 show() 方法,您可能会收到诸如 “无法获取属性的错误消息“显示”未定义或空引用”。

请删除该设置,然后重试。

【讨论】:

  • 我已经尝试过了,但我仍然在modal 中得到一个空引用。
  • 为什么要为 ModalPopupExtender 设置 Enabled="False"
  • 我在测试另一个理论。我会用我当前的代码更新它。
  • 一个普通的 javascript 示例怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
相关资源
最近更新 更多