[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

Create Multiple ModalPopupExtenders Dynamically in C#

Posted on 2009-04-07
2
Medium Priority
?
3,266 Views
Last Modified: 2012-05-06
Hello,

I am trying to create multiple buttons and associated modalpopupextenders, dynamically.  When I create only one button and one modalpopupextender, the popup works.  But when I try to create more than one button and more than one modalpopupextender, the buttons and popups don't work.

I'd very much appreciate any insights.  The code is below and can be tested just by pasting it into a new .aspx file.  To test the creation of multiple versus single sets of buttons and associated modalpopupextenders, just change the value of "numberOfButtonsAndModalPopups" on line 7 below.

 This code will work for " numberOfButtonsAndModalPopups = 1 ", but not for 2, 3, 4 or more...
 
Thanks in advance for any help!
<%@ Page Language="C#" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">    
    protected void Page_Load(object sender, EventArgs e)
    {
        int numberOfButtonsAndModalPopups = 1;
        
        for (int i = 1; i <= numberOfButtonsAndModalPopups; i++)
        {
            Button btnNew = new Button();
 
            btnNew.ID = "BtnPopup" + i.ToString();
 
            btnNew.Text = "Click Me to Show PopUp Number " + i.ToString();
 
            AjaxControlToolkit.ModalPopupExtender modalPop = new AjaxControlToolkit.ModalPopupExtender();
 
            modalPop.ID = "MpePopUp" + i.ToString();
 
            modalPop.PopupControlID = "ModalPanel";
 
            modalPop.TargetControlID = "BtnPopup" + i.ToString();
 
            modalPop.DropShadow = true;
 
            modalPop.CancelControlID = "btnCancel";
 
            this.Panel1.Controls.Add(modalPop);
 
            this.Panel1.Controls.Add(btnNew);
        }
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Panel ID="Panel1" runat="server"></asp:Panel>
            <asp:Panel ID="ModalPanel" runat="server" Style="display: none" BackColor="Gray">
                Dynamic ModalPopup!
                <asp:Button ID="btnCancel" runat="server" Text="Close Me" />
            </asp:Panel>
        </ContentTemplate>
        </asp:UpdatePanel>
    </form>
</body>
</html>

Open in new window

0
Comment
Question by:suchandsuch
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 14

Accepted Solution

by:
GiftsonDJohn earned 2000 total points
ID: 24094247
Hi,

The issue is because of the DropShadow behavior. Whenever you enable the DropShadow Property, the dom will initiate the Shadow behavior for the Modal Popup Panel. So when you enable multiple modal popup extenders for the same panel, it gets conflict and it is not able to initiate the shadow effect and will throw the following javascript error.

Sys.InvalidOperationException: Two components with the same id 'ModalPanel$DropShadowBehavior' can't be added to the application.

The above error states that already a behavior for DropShadow is added to the ModalPanel object. So another control can't create a shadow behavior for the same.

If you make DropShadow=false your code will work.
0
 
LVL 1

Author Closing Comment

by:suchandsuch
ID: 31567808
Fantastic - thanks Giftson - I didn't even see the Javascript error.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
Suggested Courses

656 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question