一个页面上有多个ASP模式弹出窗口

时间:2010-12-18 20:21:54

标签: asp.net

我们在asp.net页面上有一个工作模式弹出窗口,需要添加另一个。链接按钮打开第一个。

但是如果我们尝试为另一个链接按钮添加代码来打开第二个弹出窗口,它将使用另一个mp扩展器控件,它们都不起作用。如果我们删除第二个弹出和扩展程序代码,它会再次运行。

之前我发布过这个问题但得到了关于在gridview中使用它们的答案,这不是正在发生的事情。这个问题并不复杂,只是因为我们无法在页面上运行两个单独的弹出窗口。是否有任何错误或任何阻止它工作的东西?

以下代码适用于工作弹出窗口。似乎合乎逻辑的是,如果我们添加适用于页面的代码并为控件提供新名称,它应该也可以正常工作,对吧?无论如何,有点帮助?​​

     <!--modal popup extender-->
<ajax:ModalPopupExtender ID="mpe1" runat="server"
        DropShadow="false" 
        TargetControlID="btn1"
        PopupControlID="mp1"
        BehaviorID="ModalPopBehavior" 
        CancelControlID="btnCancel">
</ajax:ModalPopupExtender>

<!--modal panel-->
<asp:Panel ID="mp1" runat="server" EnableViewState="true" Visible="False" Width="290px" height="140px"  
        BorderWidth="4px" BorderStyle="Ridge" BorderColor="Control" style="display:none;" >
 <asp:Table ID="Table1" runat="server" BorderStyle="None" Width="290px" Height="140px"  BackColor="#ffffee">
   <asp:TableRow ID="TableRow1" runat="server">                    
    <asp:TableCell ID="TableCell1" runat="server">
    <asp:Label ID="lbl1" runat="server" CssClass="PanelLabel" 
               Style="left: 60px; position: absolute; top: 4px" Text="label1" 
               ForeColor="#0000C0" /> 
    <asp:Label ID="lbl2" runat="server" CssClass="StdLabel" 
               Style="left: 6px; position: absolute; top: 30px" Text="label2" />
    <asp:TextBox ID="txt1" runat="server" CssClass="StdTextbox"
                 Style="left: 6px; position: absolute; top: 44px" Width="120px" />  
    <asp:Label ID="lbl3" runat="server" CssClass="StdLabel" 
               Style="left: 160px; position: absolute; top: 30px" 
               Text="label3" />
    <asp:TextBox ID="txt2" runat="server" CssClass="StdTextbox"
                 Style="left: 160px; position: absolute; top: 44px" Width="120px" />
    <asp:Button ID="btnOK" runat="server"  
                    Style="font-family: Tahoma; font-size: 11px; color: Navy; left: 60px; 
                    position: absolute; top: 86px" Text="OK" Width="90px" />
    <asp:Button ID="btnCancel" runat="server" Text="Cancel" Width="50px"
                style="font-family: Tahoma; font-size: 11px; color: Navy; top: 86px; left: 170px; 
                position:absolute;"/>
   </asp:TableCell>
  </asp:TableRow>
 </asp:Table></asp:Panel>

在页面中还有弹出窗口的隐藏按钮。它看起来像这样:

   <!--hidden button for modal popup -->
   <asp:Button ID="btn1" visible="true" runat="server" Style="display: none" Enabled="false" />

1 个答案:

答案 0 :(得分:3)

好的问题是每个扩展器的behaviorID属性必须是唯一的。一旦我将behaviorID设置为与每个扩展器中的ID相同的名称,它们都可以工作。当然,所有弹出对象本身的所有其他控件也必须是唯一的。