【问题标题】:Modal popup extender not displaying popup模态弹出扩展器不显示弹出窗口
【发布时间】:2012-01-27 12:20:33
【问题描述】:

我使用 ASP 模态弹出扩展器继承了一些代码,由于某种原因,它现在决定停止工作。我在这里错过了什么吗?我现在对 AJAX / ASP.Net 不太熟悉,所以我很难诊断这里出了什么问题。

首先是显示模态的javascript方法

 function ShowModalRemoveEvent(ID, EventID, InstructorID, InstructorName)
      {
         alert("Hi");
         var modal = $find('ModalPopupExtender1');
         modal.show();
         document.getElementById("txtID").value = ID;
         document.getElementById("txtEventID").value = EventID;
         document.getElementById("txtInstructorID").value = InstructorID;
         document.getElementById("txtInstructorName").value = InstructorName;
      }

我知道这是因为警报而被调用的。所以我会假设问题是找到 ModalPopupExtender1 或 modal.show() 线。

这是我的模态弹出扩展器的代码

 <asp:UpdatePanel ID="UpdatePanel4" runat="server" UpdateMode="Conditional">
      <ContentTemplate>
         <asp:Panel ID="Panel4" runat="server" Style="display: none" CssClass="ModalBackground">
            <table style="width: 100%" border="0" cellpadding="0" cellspacing="0">
               <tr>
                  <td width="7%" class="cellAlertHeader">
                     <img src="../../../images/Ops/window_delete.png" style="width: 18px; height: 18px" alt=""/>
                  </td>
                  <td width="93%" class="cellAlertHeader">
                     <b>Cancel Instructor Event</b>
                  </td>
               </tr>
            </table>
            <table width="100%">
               <tr>
                  <td width="5%">
                     &nbsp;<td width="95%">
                        &nbsp;
                        <asp:TextBox ID="txtID" Style="display: none" runat="server" CssClass="TextboxTitle"></asp:TextBox>
                        <asp:TextBox ID="txtEventID" Style="display: none" runat="server" CssClass="TextboxTitle"></asp:TextBox>
                     </td>
               </tr>
               <tr>
                  <td width="5%">
                     &nbsp;
                  </td>
                  <td width="95%">
                     <asp:TextBox ID="txtInstructorID" Style="display: none" runat="server" BorderStyle="None"
                        CssClass="TextboxTitle"></asp:TextBox>
                     <asp:TextBox ID="txtInstructorName" Style="font-size: 12px" runat="server" BorderStyle="None"
                        CssClass="TextboxTitle" BorderWidth="0"></asp:TextBox>
                  </td>
               </tr>
               <tr>
                  <td width="5%">
                     &nbsp;
                  </td>
                  <td width="95%">
                     &nbsp;
                  </td>
               </tr>
               <tr>
                  <td width="5%">
                     &nbsp;
                  </td>
                  <td width="95%">
                     <asp:Label ID="Label2" runat="server" Text="Are you sure you want to remove this Event?"
                        CssClass="TextboxTitle"></asp:Label>
                  </td>
               </tr>
               <tr>
                  <td width="5%">
                     &nbsp;
                  </td>
                  <td width="95%">
                     &nbsp;
                  </td>
               </tr>
               <tr>
                  <td width="5%">
                     &nbsp;
                  </td>
                  <td width="95%">
                     <asp:Button ID="ButtonConfirmRemove" runat="server" Text="Confirm" CssClass="buttonshort" />
                     <asp:Button ID="ButtonCancel" runat="server" Text="Cancel" CssClass="buttonshort" />
                  </td>
               </tr>
               <tr>
                  <td width="5%">
                     &nbsp;
                  </td>
                  <td width="95%">
                     &nbsp;
                  </td>
               </tr>
            </table>
         </asp:Panel>
         <asp:Button runat="server" ID="dummyButton" Style="display: none" />
         <cc1:ModalPopupExtender ID="ModalPopupExtender1" 
                                 runat="server" 
                                 PopupControlID="Panel4"
                                 TargetControlID="dummyButton" 
                                 BackgroundCssClass="ModalBGOpacity" 
                                 CancelControlID="ButtonCancel"
                                 OnCancelScript="HideModalPopup()">
         </cc1:ModalPopupExtender>
      </ContentTemplate>
      <Triggers>
         <asp:AsyncPostBackTrigger ControlID="dummyButton" />
      </Triggers>
   </asp:UpdatePanel>

【问题讨论】:

  • 也许你添加了一个类似 jQuery/prototype 的库,并且符号 $ 改变了工作方式。
  • @Aristos 好主意,我检查了母版页,除了模式弹出窗口的 javascript 文件之外,我们没有包含任何库
  • 这里的第二个问题是检查模态ID是如何在html代码上呈现的。是 ModalPopupExtender1 还是其他方式,需要添加 ModalPopupExtender1.CliendID 来获取渲染的id。如果您在母版页客户端上添加此代码,则此 ID 现在已更改
  • @Aristos 非常感谢,这正是问题所在。如果您想回答问题,我会将您的回答标记为已接受。

标签: asp.net ajax


【解决方案1】:

尝试获取控件的渲染 ID,就像这样。

 var modal = $find('<%=ModalPopupExtender1.CliendID%>');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    相关资源
    最近更新 更多